关于java:JUnit测试异常

JUnit Testing Exceptions

本问题已经有最佳答案,请猛点这里访问。

我对Java很陌生。

我正在一个构造函数上运行一些JUnit测试。构造函数是这样的:如果为它的某个参数提供了一个空字符串或空字符串,那么它应该抛出一个异常。

当我用一个空或空字符串参数在JUnit中测试这个构造函数时,我会得到一个红色条,尽管我几乎100%地确信构造函数方法在传入此类参数时确实会引发异常。

如果方法按预期的方式抛出异常,那么JUnit中不应该有一个绿色条吗?或者,当你应该得到一个红色的条时,异常抛出的工作方式是应该的?


字母名称(P)Tells Junit that exception is the expected result so test will be passed(marked as green)when exception is thrown.(p)(P)为了(p)字母名称(P)Junit will consider test as failed if exception is thrown,provided it's an unchecked exception.如果对除外情况进行了审查,那么你就不需要进行竞争,而需要使用其他方法。这个链接可能帮助。(p)


(P)你真的要告诉他你的例外吗?(p)(P)For newer junit(>4.7),you can use some thing like(from here)(p)字母名称(P)And for Older Junit,this:(p)字母名称


(P)1.An adventage of use expected dexception rule(version 4.7)is that you can test exception message and not only the expected exception.(p)(P)利用杀手你可以测试信息的一部分你很感兴趣(p)字母名称


(P)如果你的建设者与这一个相似:(p)字母名称(P)他们,当你运行这一轮测试你会得到一个绿色酒吧:(p)字母名称


(P)Though EDOCX1 pental 0 silian and the expected dexception rule are very good choices,there are some instances where the junit3-style exception catching is still the best way to go:(p)字母名称(P)Another library that claims to help here is catch-exception;however,as of May 2014,the project appears to be in maintenance mode(obsolated by Java 8),and much like Mokito catch-exception can only manipulate non-EDOCX1(p)