如何在Grails中的测试中从数据库中删除对象
我有一个域名:如何在Grails中的测试中从数据库中删除对象,grails,testing,Grails,Testing,我有一个域名: MyClass 有田地 String a String b 我有个测试: void testRemoveMyClass() { MyClass x = new MyClass() x.setId(3) x.setA("AAA") x.setB("BBB") x.save() if (!MyClass.exists(3)) { fail "Object does not exist" }
MyClass
有田地
String a
String b
我有个测试:
void testRemoveMyClass() {
MyClass x = new MyClass()
x.setId(3)
x.setA("AAA")
x.setB("BBB")
x.save()
if (!MyClass.exists(3)) {
fail "Object does not exist"
}
x.delete()
if (MyClass.exists(3)) {
fail "Object exists"
}
}
第二个“失败”失败了。如何按Id删除此对象?首先:不要使用键入的引用,请使用:
def x = new MyClass()
非常好地阅读了他的主题:
您的对象仍然存在,但不应再将其持久化。在测试结束时尝试,而不是第二个exists()
:
顺便说一句,您可以通过构造函数中的映射创建域对象eaisier:
def x = new MyClass(id: 3, a: 'AAA', b: 'BBB')
“首先:不要使用类型化引用”-这显然不是一条黄金法则。你链接到的文章说使用
def
来防止ClassCastException
。
def x = new MyClass(id: 3, a: 'AAA', b: 'BBB')