如果Java代码断言失败,则进行JUnit测试

mic*_*ico 1 java junit unit-testing test-coverage

这似乎太容易和明显,但我无法找到如何测试以下内容:

我的Java方法:

public void doSth(final Foo foo) {
    assert foo != null;
    ..
}
Run Code Online (Sandbox Code Playgroud)

我的测试:

 @Test
 public void testAssertion() {
      doSth();
      doSth(new Foo());
 }
Run Code Online (Sandbox Code Playgroud)

我可以用assertEquals等等测试很多东西,但是如何创建一个测试用例,如果断言那里foo != null;给出的则给出为负数?

在断言的两种情况下,我现在的测试都是绿色的,但我无法理解断言失败与否.

我希望我的代码测试覆盖率达到100%,并希望在此行上测试一些有意义的内容.

Rap*_*aël 6

assert如果断言为false,则抛出AssertionError.

如果要测试参数是否发生断言null,可以使用注释的expected参数@Test(需要JUnit 4+)来执行:

@Test(expected = AssertionError.class)
public void testAssertion() {
    doSth(null);
}
Run Code Online (Sandbox Code Playgroud)