我正在尝试在“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
——这使得表格语法非常方便。