IllegalStateException运行Grails服务单元测试

时间:2017-09-08 04:49:20

标签: java unit-testing grails grails-3.3

我有一个简单的Grails服务:

int

通过简单的单元测试:

@Transactional
class SearchService {
    def doSomething() {
        10
    }
}

当我运行测试时,我得到以下异常:

enter image description here

任何人都知道这意味着什么?

奇怪的是,如果我将class SearchServiceSpec extends Specification implements ServiceUnitTest<SearchService>{ def setup() { } def cleanup() { } void "test something"() { expect: service.doSomething() == 10 } } 更改为doSomething,然后执行getSomething,则会有效。

我有以下版本: | Grails版本:3.3.0 | Groovy版本:2.4.11 | JVM版本:1.8.0_60

1 个答案:

答案 0 :(得分:5)

这是因为getter方法没有应用事务行为。要测试事务方法,您需要设置GORM实现。测试的最简单方法是实现grails.testing.gorm.DataTest