【发布时间】:2014-06-30 07:06:33
【问题描述】:
作为我另一个问题的补充:How to create Spock mocks outside of a specification class? - 是否可以在规范之外更改 Mocks 的行为?
在我们的项目中,我们的规范中有很多代码如下所示:
someService.findById(SomeMother.SOME_OBJECT.id) >> SomeMother.SOME_OBJECT
someService.findById(_) >> {throw new IllegalArgumentException("No such object")}
我宁愿有这样的代码
Helper.register(SomeMother.SOME_OBJECT).to(someService)
所以我不必到处复制模拟逻辑。但是,我似乎无法在规范之外更改 Mocks 的行为,因为 Mock 只是注册调用而不是认识到我想改变它的行为。有没有办法做到这一点,还是我必须一遍又一遍地重复我所有的初始化逻辑?
【问题讨论】:
标签: unit-testing mocking spock