2013-05-21 31 views
0

我有一個域:如何從數據庫中刪除對象在測試中的Grails

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

首先:不要使用類型的引用,使用方法:

def x = new MyClass() 

很好的閱讀他的講題:http://blog.springsource.org/2010/07/28/gorm-gotchas-part-3/

你的對象仍然存在,但它不應該再堅持。在測試結束嘗試,而不是第二exists()

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

BTW,您可以創建您的域名通過地圖的構造函數對象eaisier:

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

「首先:不要使用類型化參考文獻「 - 這顯然不是一個黃金法則。你鏈接到的文章說使用'def'來防止'ClassCastException'。 –

相關問題