如何编写JUnit测试以测试函数是否接受不正确的类型?

时间:2016-03-13 17:26:11

标签: java junit

我正在为我给出的一些代码编写测试。有一个构造函数将take和int作为第一个参数。我想测试它是否会传递一个错误,如果传递了一个布尔值,所以我写了这段代码。

try
{
    nanReview = new WorkshopReview(true, "test");
}
catch (Error err)
{
    assertEquals(err.getMessage(), "incompatible types: boolean cannot be converted to int");
}

当我运行测试时,它会再次将错误抛出到控制台中,此时测试不会通过,因为它会抛出预期的错误消息吗?

我如何开始测试这样的东西/我是否应该首先测试这个?

1 个答案:

答案 0 :(得分:1)

这不会做你想要的。如果构造函数成功,则测试通过。

虽然JUnit的expected注释有一个@Test参数,但我个人更喜欢使用assertj:

try {
    iShouldThrow();
    shouldHaveThrown(SomeException.class);
} catch (SomeException e) {
    assertThat(e).hasMessage(whatever);
}