如何在Grails中的测试中从数据库中删除对象

时间:2013-05-21 09:33:01

标签: 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"
    }

    x.delete()

    if (MyClass.exists(3)) {
        fail "Object exists"
    }
}

第二个'失败'失败了。如何通过Id删除此对象?

1 个答案:

答案 0 :(得分:1)

首先:不要使用类型化引用,请使用:

def x = new MyClass()

关于他的主题的非常好的阅读:http://blog.springsource.org/2010/07/28/gorm-gotchas-part-3/

您的对象仍然存在,但不应再保留。尝试在测试结束时,而不是第二个exists()

def y = MyClass.findById(3)
assert y == null

顺便说一下,你可以通过构造函数中的map创建你的域对象:

def x = new MyClass(id: 3, a: 'AAA', b: 'BBB')