Grails集成测试:get的问题

时间:2010-09-06 15:24:47

标签: unit-testing grails integration-testing mocking gorm

我正在尝试编写一个简单的集成测试,但在使用Domain Objects时遇到了一些问题。我读过unit testing,但无法理解。

这是我的简单测试:

    User user = User.get(1)

    controller.params.userid = "1"
    controller.session.user = user

    controller.save();

错误消息是:

  

groovy.lang.MissingMethodException:没有   方法签名:静态   com.baufest.insside.user.User.get()是   适用于参数类型:   (java.lang.Integer)值:1

我的猜测是我应该嘲笑user对象,但不知道如何。

1 个答案:

答案 0 :(得分:3)

你说你是集成测试,但看起来你是单元测试。测试/集成或测试/单元测试?单元测试需要进行模拟,但集成测试具有初始化的Spring应用程序上下文和Hibernate,并针对内存数据库运行。

用户指南中对此进行了描述,该指南位于http://grails.org/doc/latest/(您引用了较旧的1.1版本)。

要模拟User类,只需在setUp或测试方法中调用带有一个或多个测试实例的mockDomain:

def users = [new User(...), new User(...), ...]
mockDomain User, users

...

User user = User.get(1)