【问题标题】:Grails - save() failing with MissingMethodExcepition in integration testGrails - save() 在集成测试中因 MissingMethodExcepition 失败
【发布时间】:2011-07-03 07:08:37
【问题描述】:

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

目前失败:

groovy.lang.MissingMethodException: 否 方法签名: com.mangofactory.scurry.User.save() 是 适用于参数类型:() 值:[]

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

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 提供的脚手架页面保存实体时,效果很好。

我错过了什么?

【问题讨论】:

    标签: grails groovy grails-orm


    【解决方案1】:

    如果您希望它成为集成测试,则不应扩展单元测试基类之一,因此将其更改为

    class UserEventControllerTests extends GroovyTestCase {
    ...
    }
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2011-08-26
      • 1970-01-01
      • 2011-06-19
      • 2011-10-22
      相关资源
      最近更新 更多