【发布时间】:2012-01-25 01:24:36
【问题描述】:
我正在尝试在“where”子句的表中使用 ia 模拟对象。基本上是这样的:
def "my test"(){
given:
InjectedObject1 inj1 = Mock()
InjectedObject2 inj2 = Mock()
SystemUnderTest system = new System(inj1, inj2)
MockedObject mocked = Mock()
inj1.someMethod() >> list // this will be a list of MockedObject
when:
system.execute()
then:
n * inj2.someOtherMethod()
where:
list | n
[mocked] | 0
[mocked, mocked] | 1
}
这不起作用,因为“where”子句在“given”子句之前执行,所以mocked在第一次被引用时还不存在。我该如何克服呢? mocked 仅用于此测试,因此我想避免在此方法之外创建它。
请注意,这是一个简化的示例,实际上还有更多的交互,并且表格中的其他列对n 有影响——这使得表格语法非常方便。
【问题讨论】: