在参数化JUnit 4+测试中测试可选异常

jun*_*per 2 java unit-testing exception junit4 parameterized-unit-test

我试图写它接受一个字符串作为一个对位计和抛出异常的方法的单元测试,如果它是畸形的(并且没有,如果它是好的).我想写一个参数化测试在几个字符串和期望的异常,其中饲料(包括是否良好形成的输入字符串没有抛出如此!).如果尝试使用@Test(expect = SomeException.class)注释,我遇到了两个问题:

  1. expect = null是不允许的.那么我怎样才能测试抛出NO异常的预期结果(对于结构良好的输入字符串)?

  2. 期待=不可能?我还没有尝试过,但我强烈怀疑,这样的话看完这个(请你说明这是否是真的?): http://tech.groups.yahoo.com/group/junit/message/19383 这那么似乎是我发现的最佳解决方案.您如何看待它,特别是与此相比: 如何在参数化测试中测试异常?

提前感谢您的任何帮助,我期待着讨论:)

Tom*_*icz 5

创建两个测试用例类:

  • ValidStringsTest
  • InvalidStringsTest

显然,第一个测试各种有效输入(不抛出异常),而第二个总是期望异常.

请记住:测试的可读性比生产代码的可读性更重要.不要在JUnit测试用例中使用古怪的标志,条件和逻辑.简约就是王者.

另请参阅我的答案,以获得如何干净地测试异常的提示.