2013-02-03 76 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

相关问题