Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Grails中的测试中从数据库中删除对象_Grails_Testing - Fatal编程技术网

如何在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')