2013-02-03 77 views
2

我想,因爲我做了我的服務類的變化來更新我的測試。 在服務方法我加入(「withNewSession」)的Grails GORM服務類測試withNewSession()

Domain.withNewSession { 
    .. ... 
    domain.save() 
} 

由於我使用的是「withNewSession」,我越來越缺少方法異常,因爲這個域名是在我的測試類嘲笑。

回答

5

withNewSession方法不受單元測試允許的。在您的測試類中使用:

@org.junit.Before 
void before() { 
    DomainClazz.metaClass.static.withNewSession = {Closure c -> c.call() } 
} 
+1

這解決了我的問題。喜歡Groovy的元編程功能:) – bond

0

你應該集成測試,而不是單元測試測試持久性。使用域類只測試控制器或依賴於域類其他類時嘲諷,但其中域類不是被測試的類。

+0

服務方法執行一些業務邏輯,我試圖測試它。我不得不添加Domain.withNewSession周圍的邏輯的原因是因爲我運行多個線程情況下的方法。 – bond

相關問題