【发布时间】:2015-11-13 08:53:25
【问题描述】:
我有一个 uuid 生成器,例如:
class NewUuid {
def apply: String = UUID.randomUUID().toString.replace("-", "")
}
其他类也可以使用:
class Dialog {
val newUuid = new NewUuid
def newButtons(): Seq[Button] = Seq(new Button(newUuid()), new Button(newUuid()))
}
现在我想测试Dialog 并模拟newUuid:
val dialog = new Dialog {
val newUuid = mock[NewUuid]
newUuid.apply returns "uuid1"
}
dialog.newButtons().map(_.text) === Seq("uuid1", "uuid1")
可以看到返回的uuid始终是uuid1。
是否可以让newUuid 为不同的调用返回不同的值?例如第一次调用返回uuid1,第二次返回uuid2,等等
【问题讨论】:
标签: scala mocking mockito specs2