java - 为什么 JUnit 不提供 assertNotEquals 方法?

标签 java junit assert

有人知道为什么 JUnit 4 提供 assertEquals(foo,bar) 而不是 assertNotEqual(foo,bar) 方法吗?

它提供了assertNotSame(对应assertSame)和assertFalse(对应assertTrue),所以看起来奇怪的是他们没有打扰包括 assertNotEqual

顺便说一句,我知道 JUnit-addons 提供了我正在寻找的方法。我只是出于好奇而问。

最佳答案

我建议您使用较新的 assertThat() style asserts,可以轻松描述各种否定,并自动构建一个描述你期望什么以及如果断言失败你得到什么的描述:

assertThat(objectUnderTest, is(not(someOtherObject)));
assertThat(objectUnderTest, not(someOtherObject));
assertThat(objectUnderTest, not(equalTo(someOtherObject)));

所有三个选项都是等效的,选择你认为最易读的一个。

要使用方法的简单名称(并允许这种时态语法起作用),您需要这些导入:

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

关于java - 为什么 JUnit 不提供 assertNotEquals 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096650/

相关文章:

java - 在 Junit 中使用 Java 分析器

java - 单元测试成员变量应该是私有(private)的还是公共(public)的?

c++ - std::is_sorted 的奇怪行为

java - 断言(假)与 RuntimeException?

java - 在java中是否值得对结果集进行计数来预分配数组?

java - org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException :

Java 初始化顺序问题,静态与实例字段

java - java中输入1000000000个数组

android - 如何使用 Espresso 在 Instrumentation 测试中注入(inject) Mocked Presenter of Activity

java - 如何将复杂对象列表的成员与 Hamcrest 进行比较?