我们最近在其中一项服务上更改了API,它曾经是:
def updateSubtitle(subtitleId: UUID, ...): Subtitle
现在是:
there was one(subtitleService).updateSubtitle(eq(subtitleId), ...)
之前我们写过这样的期望:
subtitleId
这不再适用,因为UUID
现在是String
而不是eq(subtitleId)
。我必须将any[UUID]
更改为subtitleId
但是这太过于通用,因为它实际上没有测试UUID
值,它只关心类型的值eq
已通过。
如何让UUID
匹配器与Table 1
Col1 Col2 Col3
Table 2
Col1_prnT Col2_child
Table 3
Col1_Prnt Col2_Child
一起使用?
答案 0 :(得分:1)
Cause
可与apply
配合使用,因为eq(subtitleId)
方法已正确实施(https://docs.oracle.com/javase/6/docs/api/java/util/UUID.html#equals(java.lang.Object)。
您可能遇到UUID
和UUID.equals
之间的命名冲突问题(请参阅https://github.com/etorreborre/specs2/issues/361)。这可以通过以下任一方式解决:
scala.AnyRef.eq
(即org.mockito.Matchers.eq
)或Matchers.eq
名称(例如one(subtitleService).updateSubtitle(org.mockito.Matchers.eq(subtitleId), ...)
并相应地将匹配器使用更改为Matchers.eq