gpt4 book ai didi

Grails - save() 在集成测试中因 MissingMethodExcepition 而失败

转载 作者:行者123 更新时间:2023-12-01 11:00:26 25 4
gpt4 key购买 nike

我正在学习 groovy/grails,并编写我的第一个集成测试。

目前失败了:

groovy.lang.MissingMethodException: No signature of method: com.mangofactory.scurry.User.save() is applicable for argument types: () values: []

我的测试没有做任何花哨的事情:

class UserEventControllerTests extends ControllerUnitTestCase {
protected void setUp() {
super.setUp()
}

protected void tearDown() {
super.tearDown()
}

void testAddingAUser()
{
def user = new User(emailAddress: "martypitt@test.com")
user.save()
}
}

当我通过 grails 提供的脚手架页面保存实体时效果很好。

我错过了什么?

最佳答案

如果你想让它成为一个集成测试,它不应该扩展单元测试基类之一,所以把它改成

class UserEventControllerTests extends GroovyTestCase {
...
}

并确保它在测试/集成中,而不是测试/单元中。

但看起来您想要测试一个 Controller (称为 UserEventControllerTests),它应该扩展 ControllerUnitTestCase。如果是这种情况,那么您应该进行单元测试,但要模拟域层(使用 mockDomain 和其他),因为您希望专注于 Controller 逻辑,而不是持久性。使用数据库在适当的集成测试中测试域类。

这一切都在文档的第 10 章中进行了描述:http://grails.org/doc/latest/

关于Grails - save() 在集成测试中因 MissingMethodExcepition 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100492/

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