groovy - 在 Groovy 中抛出/捕获异常

标签 groovy spock

我是 Groovy 的新手,正在尝试在我的应用程序中实现 Spock 框架。 这是我的测试代码:

def "Test class with mock object"()  {

        setup:
        SomeObject sp = Mock()
        test= TestClass()

        when:
        System.out.println('comes here');
        push.exec(sp)

        then:
        sp.length == 1

    }

这里 TestClass 抛出一些异常,我必须在测试方法中捕获或再次抛出它。我试过了

try {

  push.exec(sp)
} catch (Exception e) {

}

但还是得到了

groovy.lang.MissingMethodException: No signature of method: test.spock.TestClassTest.TestClass() is applicable for argument types: () values: []
Possible solutions: use([Ljava.lang.Object;), use(java.util.List, groovy.lang.Closure), use(java.lang.Class, groovy.lang.Closure), dump(), with(groovy.lang.Closure), each(groovy.lang.Closure)

最佳答案

而不是 test = TestClass(),它应该是 test = new TestClass()。要测试预期的异常,请使用 Specification.thrown 而不是 try-catch。参见 Spock 的 Javadoc举个例子。

关于groovy - 在 Groovy 中抛出/捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909716/

相关文章:

grails - 为什么不能在Grails中导入此Groovy库?

grails - 动态调度作业:在Groovy中使用cron触发器

grails - Grails-需要根据联接表上的条件限制提取的行

groovy - Groovy 脚本中的全局方法

grails - 当我希望在许多相似的领域执行相同的测试时,如何遍历Grails Spock测试中的测试?

java - Spock Power Mock 不返回 .thenAnswer { } 方法中指定的值

java - 使用带有 Groovy 2.6+ 的 Spock 框架来支持 Java 8+ 语法

gradle - TestFX Spock Gradle项目Openjdk 11-零测试结果

gradle - 使用Tar Task为Gradle中的每个文件夹创建tar.gz

java - 如何将模拟对象注入(inject)到构造函数中?