欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Java

为什么不提供JUnit的方法assertNotEquals?

程序员文章站 2022-05-13 13:30:19
...
1. 我建议的新assertThat()样式assertions,它可以很容易地描述各种否定,并自动生成你所expect的的描述,如果assertions失败,你得到了什么:assertThat(objectUnderTest,
is(not(someOtherObject)));
assertThat(objectUnderTest, not(someOtherObject));
assertThat(objectUnderTest, not(equalTo(someOtherObject)));

所有这三个选项是等价的,选择一个你认为最可读。 简单的(并允许这种紧张的语法来工作),你需要这些导入:

i

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

2. 有在JUnit中4.11的assertNotEquals:
3. 我不知道assertions的API是不太适合做测试的对象是指它提供了和 当然 CodeGo.net,这是不是太长写:

assertFalse(foo.equals(bar));


随着yield的这种说法部分是如此不幸应分别:

String msg = "Expected <" + foo + "> to be unequal to <" + bar +">";
assertFalse(msg, foo.equals(bar));

那是当然的,使其更好地推出自己assertNotEqual。幸运的是,在未来将可能成为了JUnit的一部分:JUnit的问题22
4. 我认为,如果没有assertNotEqual确实是一个,使JUnit的少一点可以学习的。记住,这是一个整洁的情况下,当增加会减少的API,至少有助于执政党更大的空间。 我的猜测是,对于遗漏的原因可能是因为有太multiplayer少,呼吁然而,我一个当即便assertFalse不存在,因此,我有可能最终被加了积极的expect,因为它不是一个困难的之一,尽管我承认,有解决方法,甚至是优雅的。
5. 我对这个党已经很晚了,但我发现,格式如下:

static void assertTrue(java.lang.String message, boolean condition)

可向工作最'不等于'案件。

int status = doSomething() ; // expected to return 123
assertTrue("doSomething() returned unexpected status", status != 123 ) ;

6. 这是更好的Hamcrest负assertions,而不是assertFalse如在测试报告中会显示一个diff的assertions失败。 如果assertFalse,你只会得到一个assertions失败的报告。即在出现故障。
7. 究其原因,人们希望assertNotEquals()是内建命令,而无需先将它们转换为完全成熟的对象: 详细的例子:

....
assertThat(1, not(equalTo(Integer.valueOf(winningBidderId))));
....

assertNotEqual(1, winningBidderId);

8. 模API的一致性,为什么是JUnit没有提供assertNotEquals()就是为什么JUnit的永远喜欢它的原因assertStringMatchesTheRegex(regex, str)与assertStringDoesntMatchTheRegex(regex, str)assertStringBeginsWith(prefix, str)与assertStringDoesntBeginWith(prefix, str)即有没有结束提供了一个具体的供种东西,你可能想在你的说法的逻辑! 更好的测试原语像equalTo(...),is(...),not(...),regex(...)并让这些作品一起,而不是更多的可读性和理智。

以上就是为什么不提供JUnit的方法assertNotEquals? 的内容,更多相关内容请关注PHP中文网(www.php.cn)!