微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spock / Grails – Groovy:无法解析类grails.test.mixin.TestFor并且无法解析类spock.lang.Specification

我正在为我的插件项目插件创建一个Spock测试,我的主项目名称是main-project,它使用project-plugin作为插件.因此,当我为我的插件创建Spock测试时,抛出上面的错误意味着它的警告项目插件由于下面的类而有错误.

插件创建Spock测试与为主项目创建Spock测试有所不同.

例如,我创建了一个新的示例项目,并为服务创建了spock测试,该测试没有任何错误.

import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(DataimportService){

}

我也尝试使用命令grails刷新依赖关系> refresh-dependencies -dplugins.useInline = true刷新依赖项.但仍然是同样的错误.

我应该使用main-project或plugin-project运行我的单元测试用例.

如何排序这个问题.

谢谢.

解决方法

我在我工作的应用程序中为内联插件创​​建了许多Spock测试(单元和集成).基本上应用程序是一个shell和一些inplace-plugins – 应用程序本身很简单.

组织非常简单.每个应用程序中的BuildConfig.groovy选择使用grails.plugin.location.’plugin-name’=’../../plugins/plugin-name’组成的插件

+- applications
|     |
|     +- app1
|     +- app2
|     +- app3
|
+- plugins
      |
      +- plugin1 
      +- plugin2 (there are > 30 plugins in total)

手动或通过IntelliJ IDE创建测试没什么特别之处.测试全部存在于应用程序中>测试> [整合| unit]文件夹(是的,我应该重构以使代码覆盖正常工作).
适用于域类,控制器或服务. (Grails 2.4.3 / 2.4.5)

import grails.test.mixin.TestFor
import grails.test.mixin.Mock
import spock.lang.specification
import spock.lang.Unroll

@TestFor(SomeService)
@Mock([OtherService])
class SomeService extends Specification {
    def "some method"() {
        given:
            // setup
        when:
            // action
        then:
            // test outcomes
        cleanup:
            // undo any MetaClassing,etc
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐