代码之家  ›  专栏  ›  技术社区  ›  Ben S

JUnit预期的标记未按预期工作

  •  30
  • Ben S  · 技术社区  · 15 年前

    我在Eclipse中有以下测试用例,使用了JUnit4,它拒绝通过。 可能有什么问题?

    @Test(expected = IllegalArgumentException.class)
    public void testIAE() {
        throw new IllegalArgumentException();
    }
    

    当试图用预期的标记测试我自己的代码时,出现了这个准确的测试用例。我想看看JUnit是否能通过最基本的测试。没有。

    我还测试了自定义异常,如预期的那样,没有运气。

    截图: Screenshot http://www.freeimagehosting.net/uploads/6a995b0db7.png

    3 回复  |  直到 7 年前
        1
  •  77
  •   Yishai    15 年前

    问题是您的announcethreadtest扩展了testcase。因为它扩展了testcase,所以junit运行程序将其视为junit 3.8测试,并且该测试正在运行,因为它从单词test开始,隐藏了一个事实,@test annotion实际上根本没有被使用。

    要解决这个问题,请从类定义中删除“extends testcase”。

        2
  •  2
  •   duffymo    15 年前

    刚刚用JUnit 4.4在Intellij中运行了这个:

       @Test(expected = IllegalArgumentException.class)
       public void testExpected()
       {
           throw new IllegalArgumentException();
       }
    

    完全通过。

    重新生成整个项目,然后重试。你还做错了什么。Junit 4.4正在按广告工作。

        3
  •  2
  •   HsYoo    7 年前

    您可以添加这个来使用支持注释的JUnit4运行测试用例,而不是删除扩展测试用例。

    @runwith(6月4日课)