【问题标题】:Java: How to make JUnit Tests for wrong variables [duplicate]Java:如何为错误的变量进行 JUnit 测试
【发布时间】:2016-08-27 02:08:13
【问题描述】:

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

@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");
   }
}

【问题讨论】:

  • 关于代码质量的旁注:使用纯字符串来表示颜色......坏主意。然后......捕获一个异常,但只是打印它 - 不要那样做。您这样做基本上是在使您的测试无效。

标签: java junit


【解决方案1】:

如果是你期望的异常,你可以这样做:

@Test(expected = Exception.class)

来自here的原始答案。

【讨论】:

    【解决方案2】:

    我会将有效和无效参数的测试分开,并像这样测试异常:

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

    【讨论】:

      【解决方案3】:

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

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

      @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");
      }
      

      【讨论】:

        猜你喜欢
        • 2015-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-26
        • 1970-01-01
        相关资源
        最近更新 更多