java - IllegalStateException 运行 Grails 服务单元测试

标签 java unit-testing grails grails-3.3

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

当我运行测试时,出现以下异常:

enter image description here

有人知道这是什么意思吗?

奇怪的是,如果我将 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/

相关文章:

java - YAML Mapper 如何在反序列化过程中忽略 yml 文件中的某些字段?

objective-c - 使用 OCUnit 的单元测试示例

ajax - grails渲染模板未正确响应

grails - Grails 2.4.3,未在新域对象上设置isDirty标志

grails - 一对多关系 View

java - 将共享项目添加到多个项目

java - 无法编译Java代码

unit-testing - 在 Pony 中所有行为结束后运行函数/行为

java - flink 文档中给出的代码无法编译

java - 是否可以在 Tomcat 8 中禁用对 JSP 2.3 引用静态字段和方法的支持