groovy GroovyTestCase shouldFail异常消息

时间:2014-08-21 17:44:06

标签: unit-testing exception groovy

我有一种在某些情况下抛出异常的方法。我的单元测试:

class Bob extends GroovyTestCase {

    void testClusterInvalidSomeParameter() {
        Abc abcClass = new Abc(2, 0)
        shouldFail {
            abcClass.calculate()
        }
    }
}

If second parameter == 0,然后方法抛出异常:"Parameter cannot be null"。如何测试它是否完全抛出此异常?

1 个答案:

答案 0 :(得分:5)

shouldFail()shouldFailWithCause()返回异常的原因/消息。如果设置了消息/原因,则可以使用如下的断言:

class Bob extends GroovyTestCase {

    void testClusterInvalidSomeParameter() {
        Abc abcClass = new Abc(2, 0)

        String message = shouldFail {
            abcClass.calculate()
        }

        assert message == "Parameter cannot be null"
    }
}

更好的测试是assert抛出Exception的类型:

String message = shouldFail( XyzException ) {
    abcClass.calculate()
}