为什么不提供JUnit的方法assertNotEquals?
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)!