fin*_*elp 5 grails unit-testing mocking
我想测试控制器使用正确的参数调用服务方法.最好的方法是什么?
我目前的计划是使用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)
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Ted*_*eid 13
我很少使用mockFor,因为我发现groovy内置了metaClass的东西,并且as ClassName更容易使用和更强大,我会这样做:
void testSomeValue() {
def givenSomeItem = null
controller.happyService = [
serviceMethod: { String someItem -> givenSomeItem = someItem }
] as HappyService
controller.someAction()
assertEquals "specific value", givenSomeItem
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5304 次 |
| 最近记录: |