Java:如何使JUnit测试错误的变量

Java: How to make JUnit Tests for wrong variables

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

我有一套方法。set方法只接受几个字符串。如果字符串不可接受,则set方法会发出一个colorException(自己的异常)。如何进行JUnit测试以测试是否出现颜色异常?现在我的测试类在这里(我用try-catch…)尝试了它:

1
2
3
4
5
6
7
8
9
10
11
12
@Test
// set&check foreground colors for drawings
public void setgetFGCol()  {
   try {
       draw.setFGColor("Red");
       assertEquals(draw.getFGColor(),"Red");
       draw.setFGColor("Not Acceptable String");
       // fail("handle fail?");
   } catch (ColorException e) {
   System.out.println("Dies ist keine bekannte Farbe");
   }
}


我会将有效和无效参数的测试与异常的测试分开,如下所示:

1
2
3
4
@Test(expected=ColorException.class)
public void setInvalidFGCol()  {  
   draw.setFGColor("Not Acceptable String");  
}

如果这是您期望的例外情况,您可以这样做:

@Test(expected = Exception.class)

原始答案。


您应该编写两个测试用例,这样您就可以很容易地看到哪个测试失败了。

并且您可以在第二个测试用例中声明预期的异常。

1
2
3
4
5
6
7
8
9
10
11
12
@Test
// set&check foreground colors for drawings
public void setgetFGCol()  {
   draw.setFGColor("Red");
   assertEquals(draw.getFGColor(),"Red");
}

@Test(expected=ColorException.class)
// set&check foreground colors for drawings
public void setInvalidFGCol() throws ColorException {
   draw.setFGColor("Not Acceptable String");
}