java - JUnit 测试 Java 代码断言是否失败

标签 java unit-testing junit test-coverage

这看起来太简单和明显了,但我找不到如何测试以下内容:

我的 Java 方法:

public void doSth(final Foo foo) {
    assert foo != null;
    ..
}

我的测试:

 @Test
 public void testAssertion() {
      doSth();
      doSth(new Foo());
 }

我可以用 assertEquals 等测试很多东西,但是如何创建一个测试用例,如果在 foo != null; 上断言则给出 true 给出否定?

我现在的测试在两种断言情况下都呈绿色,但我无法捕捉到断言是否失败。

我希望我的代码测试覆盖率达到 100%,并且想在此行测试一些有意义的东西。

最佳答案

assert 抛出 AssertionError如果断言是假的。

如果你想测试断言是否在参数为null时发生,你可以使用@Testexpected参数来完成> 注释(需要 JUnit 4+):

@Test(expected = AssertionError.class)
public void testAssertion() {
    doSth(null);
}

关于java - JUnit 测试 Java 代码断言是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35334485/

相关文章:

java - 如何在 Wicket 中测试链接的文本

visual-studio - 对战队 : A concrete example of the use of the TestContext property using Microsoft Unit Testing Framework?

java - Android 测试运行失败 : No Test results

java - JUnit 测试中的 Freemarker 和 Spring

java - 将目录添加到 java.library.path 后 System.loadLibrary() 出现 UnsatisfiedLinkError

ruby - RSpec 事件记录范围

java - 使用 JAX-RS 和 Jackson 将 JPA 实体转换为 REST 表示的最佳方法

java - Selenium : Why . click() 在这种情况下不起作用&&如何检查按钮是否被单击?

java - 通配符与通用方法

java - 崩溃后从中间状态恢复系统的设计模式