我正在尝试编写一个简单的集成测试,但在使用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
对象,但不知道如何。
答案 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)