我有一个简单的 grails 服务:
@Transactional
class SearchService {
def doSomething() {
10
}
}
通过简单的单元测试:
class SearchServiceSpec extends Specification implements ServiceUnitTest<SearchService>{
def setup() {
}
def cleanup() {
}
void "test something"() {
expect:
service.doSomething() == 10
}
}
当我运行测试时,出现以下异常:
有人知道这是什么意思吗?
奇怪的是,如果我将 doSomething
更改为 getSomething
然后执行 service.something
,它会起作用。
我有以下版本: | Grails 版本:3.3.0 |常规版本:2.4.11 | JVM版本:1.8.0_60
最佳答案
这是因为 getter 方法没有应用事务行为。要测试事务方法,您需要有一个 GORM 实现设置。为您的测试执行此操作的最简单方法是实现 grails.testing.gorm.DataTest
。
关于java - IllegalStateException 运行 Grails 服务单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46108845/