2

我有一个简单的 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
    }
}

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

在此处输入图像描述

有谁知道这是什么意思?

奇怪的是,如果我更改doSomethinggetSomething然后执行,它会起作用service.something

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

4

1 回答 1

7

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

于 2017-09-08T13:28:24.293 回答