我有以下Groovy单元测试代码:
class MyTest extends GroovyTestCase {
@Test(expected = IllegalArgumentException.class)
public void testReadFileMissing() {
// does something which causes an IllegalArgumentException
}
// more tests
}
这与我的Java单元测试完美配合,但是使用groovy测试,mvn clean test运行测试,但测试失败,因为抛出了IllegalArgumentException。换句话说,我的预期"注释属性似乎完全被忽略了。
我当然可以简单地使用try / catch块来检查我感兴趣的行为,但是如果可能的话,我想使用JUnit API,因为它是'它是什么&#39 ; s for和我发现生成的代码更易于阅读和理解。
那么,有谁能告诉我我做错了什么?
答案 0 :(得分:1)
要么不使用GroovyTestCase
而使用相应的JUnit类作为基础,要么完全groovy并使用shouldFail
。示例在这里http://mrhaki.blogspot.de/2009/11/groovy-goodness-testing-for-expected.html
答案 1 :(得分:1)
您可以使用shouldFail或shouldFailWithCause精确展示受测代码中预期的异常类型。