我环顾四周并尝试了不同的方法但无济于事。互联网上的例子很少,而且恕我直言,非常简单。我的用例:
(下面的“itocNetworkHandler”是模拟的)
when: "we're doing stuff"
StandardResponse response = cms.doCardStuff("123", "111", order)
....
then: "we get proper calls and response object"
1 * cms.itocNetworkHandler.doNetworkCall(
{ it instanceof ReplacementRequestRecord
}, StandardResponseRecord.class) >> record
我想将参数('it')存储到模拟上的“doNetworkCall”中。
我想要参数的原因是因为我正在测试的对象应该接受我的参数,做一些事情,创建一个新对象并将其传递给我的模拟。我想确保创建的对象看起来像它应该的那样。
非常感谢指点。
您可以按如下方式捕获参数:
// must be declared before when-block (or inside Specification.interaction {})
def captured
when:
...
then:
1 * mock.doNetworkCall(...) >> { record, recordClass ->
// save the argument
captured = record
...
}
// use the saved argument
captured == ...
也就是说,通常有一个更简单的解决方案,例如检查参数约束中的预期记录(例如...doNetworkCall( { it == ... } )
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)