gpt4 book ai didi

unit-testing - Grails mockFor 以及如何最好地测试使用正确参数调用的方法

转载 作者:行者123 更新时间:2023-12-04 16:55:56 25 4
gpt4 key购买 nike

我想测试 Controller 是否使用正确的参数调用服务方法。最好的方法是什么?

我目前的计划是使用 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)
}
}

谢谢!

最佳答案

我很少使用 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
}

关于unit-testing - Grails mockFor 以及如何最好地测试使用正确参数调用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com