我正在为我给出的一些代码编写测试。有一个构造函数将take和int作为第一个参数。我想测试它是否会传递一个错误,如果传递了一个布尔值,所以我写了这段代码。
try
{
nanReview = new WorkshopReview(true, "test");
}
catch (Error err)
{
assertEquals(err.getMessage(), "incompatible types: boolean cannot be converted to int");
}
当我运行测试时,它会再次将错误抛出到控制台中,此时测试不会通过,因为它会抛出预期的错误消息吗?
我如何开始测试这样的东西/我是否应该首先测试这个?
答案 0 :(得分:1)
这不会做你想要的。如果构造函数成功,则测试通过。
虽然JUnit的expected
注释有一个@Test
参数,但我个人更喜欢使用assertj:
try {
iShouldThrow();
shouldHaveThrown(SomeException.class);
} catch (SomeException e) {
assertThat(e).hasMessage(whatever);
}