- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家都说要用新的assertThat
来自 Junit,但是,对于大字符串比较,它似乎缺少一些功能。
例子:
@Test
public void testAssertThat() throws Exception {
Assert.assertThat("auiehaeiueahuiheauihaeuieahuiaehuieahuaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei",
CoreMatchers.equalTo( "auiehaeiueahuiheauihaeuieahuiaehuieaheaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei" ) );
}
@Test
public void testAssertEquals() throws Exception {
Assert.assertEquals( "auiehaeiueahuiheauihaeuieahuiaehuieahuaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei",
"auiehaeiueahuiheauihaeuieahuiaehuieaheaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei" );
}
assertEquals
打印更易于阅读的错误消息:
org.junit.ComparisonFailure: expected:<...uihaeuieahuiaehuieah[u]aiehiaueheauihaeuiha...> but was:<...uihaeuieahuiaehuieah[e]aiehiaueheauihaeuiha...>
assertThat
打印这个:
java.lang.AssertionError: Expected: "auiehaeiueahuiheauihaeuieahuiaehuieaheaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei" but: was "auiehaeiueahuiheauihaeuieahuiaehuieahuaiehiaueheauihaeuihaeuiaehuiaehuiaehuiaehaeuihaei"
assertThat
获得相同的行为? ?
最佳答案
友情留言org.junit.ComparisonFailure: expected...
来自这样一个事实,即 JUnit 使用 assertEquals 和 String 作为输入的方式。
这样,如果字符串比较失败,Junit 就会抛出 org.junit.ComparisonFailure。
在您的 IDE 中,比较确实更具可读性。例如,在 Eclipse 中,您可以双击失败的 Junit 测试以显示字符串比较。
像这样 :
AssertThat 有不同的语义,javadoc 明确指出:Asserts that actual satisfies the condition specified by matcher. If not, an AssertionError is thrown with information about the matcher and failing value.
顾名思义,AssertionError 具有更广泛的语义。
总结:如果你想保留字符串的友好信息,你应该继续使用 AssertEquals 进行字符串比较。
关于junit4 - 用于大字符串比较的 assertThat 与 assertEquals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28236625/
我正在使用 hamcrest 匹配器进行测试。为什么我一定要写 MatcherAssert.assertThat(a, Is.is(b)); 不仅仅是这个? assertThat(a, is(b));
import static org.junit.matchers.JUnitMatchers.both; import static org.junit.matchers.JUnitMatchers.
我是 JUnit 和 Hamcrest 的新手,希望获得最佳实践建议,以便我可以决定首先研究哪些文档。 对于初学者来说,这些 assertThat 方法中哪个更好? org.junit.Assert.
我有一个在应该失败的时候没有失败的测试: import static org.assertj.core.api.Assertions.assertThat; @Test public void tes
我想针对带日期的搜索编写测试。我正在考虑类似这样的测试代码 assertThat(repository.findByBookingDateAfter(LocalDate.of(2016, 1, 1))
什么是assertThat()方法?有什么用? 我在hadoop的mapreduce程序中看到了这种方法。有人可以解释一下吗? 最佳答案 assertThat是Assert对象中的JUnit方法之一,
我正在尝试使用 Mockito 在 Spring Boot 中进行 Junit 单元测试。 但是我收到以下错误。我无法从错误中找出问题所在代码片段: https://pastebin.com/RDUX
我的 build.gradle 文件中有以下依赖项 testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.9.
我有这种 JUnit 测试: @Test public void testNullCheck() { String res = someMethod(); assertThat("This
我使用 hamcrest 匹配器制作了一个测试套件,一切正常,直到我将项目移到另一台机器上。 我得到的错误是: The method assertThat(T, Matcher) in the typ
我将使用asserThat 来验证ArrayList 中对象的属性。 如果没有一个对象包含要测试的数据,我可以使用assertThat,但如果只有一个对象包含要测试的数据,我无法弄清楚如何使用asse
我从一所大学获得了一些示例代码,导入了项目并尝试运行测试:方法 assertThat(Integer, Matcher) 对于 MyClass 类型是不明确的 每个 assertThat 都被标记为红
这是一个相当简单的问题,我已经通过使用 assertEquals 解决了它,但只是想知道为什么这不起作用: assertThat(list.get(0).getStringValue().equals
这是我的一个项目中所做工作的简化版本: List names = ... assertThat(names, is(empty())); 这在我运行在 Java 上的 Eclipse 上工作得很好 1
好的,我认为这将是一个简短的问题。我有一个按日期排序的 ArrayList,当然我看到它有效,但我也想为它编写一个测试。 我想检查列表中的下一个值(日期)是否低于前一个值。我可以通过使用一些 for
如何使用 FEST assertThat(...) 方法测试类对象是否相等? 示例: import static org.fest.assertions.api.Assertions.assertTh
大家都说要用新的assertThat来自 Junit,但是,对于大字符串比较,它似乎缺少一些功能。 例子: @Test public void testAssertThat() throws Exce
此断言编译但失败,即使我知道 foo 不为 null 的事实: import static org.hamcrest.Matchers.is; // see http://stackoverflow
最初,我有这段生产代码: interface ActionSequence { public List getActions(); 我用这样的东西测试了实现该接口(interface)的类: a
我使用 assertJ 并且在我的测试用例中有多个 assertThat 断言。当第一个断言失败时,测试完成但我不希望那样。我想在单次执行测试用例后获得有关所有失败断言的信息。有什么办法吗?我在这里找
我是一名优秀的程序员,十分优秀!