我想测试控制器使用正确的参数调用service方法。什么是最好的方式来做到这一点?Grails mockFor以及如何测试该方法使用正确的参数调用
我目前的计划是使用mockFor,然后通过闭包检查传入的值。是否有更好的方法通过mockFor或模拟对象执行测试,类似于我可以使用mockito执行相同方法调用参数值测试?
class HappyControllerTests extends ControllerUnitTestCase {
:
void testSomeValue() {
def mockControl = mockFor(HappyService)
def givenSomeItem = null
mockControl.demand.serviceMethod(1..99) { String someItem -> givenSomeItem = someItem; }
controller.happyService = mockControl.createMock()
controller.someAction()
mockControl.verify()
assertEquals("specific value", givenSomeItem)
}
}
谢谢!
我喜欢“泰德Naleid”的答案。然而,恕我直言,大型商店应该使用mockFor(..)参见http://grails.org/doc/latest/guide/9.%20Testing.html#9.2集成测试“...使用这些方法可确保您做出的任何更改给定的类别不会泄漏到其他测试中。“ – finneycanhelp