我想使用GORM在用spock编写的功能测试中设置测试数据。由于我不想模仿行为,我得到了一个例外
java.lang.IllegalStateException: Method on class [com.test.Person]
was used outside of a Grails application. If running in the context of a
test using the mocking API or bootstrap Grails correctly.
有没有办法以这种方式使用GORM?我已经看过remoteControl插件,但是我不想使用它和AFAIK我应该在同一个JVM中,因为我在没有--war
开关的情况下开始测试。
答案 0 :(得分:0)
自从2.3分叉执行默认启用(包括run-app,test-app,run-war,console)。因此,如果启用了分叉执行,则必须查看BuildConfig.groovy
(有关详细信息,请参阅docs)。你必须禁用它,但你也会失去其他一些积极的方面。你唯一真正的选择是使用remote-control plugin和一些这样的结构(远程控制插件docs中的例子:
def remote = new RemoteControl()
def testIt() {
def id = remote {
def person = new Person(name: "Me")
person.save()
person.id
}
// Somehow make some HTTP request and test that person is in the DB
remote {
Person.get(id).delete()
}
}