我想測試控制器使用正確的參數調用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