首页 >Java >java教程 >为什么不提供JUnit的方法assertNotEquals?

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

黄舟
黄舟原创
2016-12-29 09:14:011840浏览

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)!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn