当前位置: 首页 > 面试题库 >

在jUnit中有CollectionAssert吗?

屠振濂
2023-03-14
问题内容

是否有一个与NUnit平行的jUnit
CollectionAssert


问题答案:

使用JUnit
4.4,您可以将assertThat()其与Hamcrest代码一起使用(不用担心,它是JUnit附带的,不需要额外的.jar)来生成复杂的自描述断言,包括对集合进行操作的断言:

import static org.junit.Assert.assertThat;
import static org.junit.matchers.JUnitMatchers.*;
import static org.hamcrest.CoreMatchers.*;

List<String> l = Arrays.asList("foo", "bar");
assertThat(l, hasItems("foo", "bar"));
assertThat(l, not(hasItem((String) null)));
assertThat(l, not(hasItems("bar", "quux")));
// check if two objects are equal with assertThat()

// the following three lines of code check the same thing.
// the first one is the "traditional" approach,
// the second one is the succinct version and the third one the verbose one 
assertEquals(l, Arrays.asList("foo", "bar")));
assertThat(l, is(Arrays.asList("foo", "bar")));
assertThat(l, is(equalTo(Arrays.asList("foo", "bar"))));

使用此方法,您将在断言失败时自动获得对断言的良好描述。



 类似资料:
  • 我正在使用Eclipse中的 JUnit5位于modul-path上,并且在module-info.Java中是必需的。 当我尝试运行代码时,总是会收到以下消息: 初始化引导层java.lang.module.findException时出错:无法为C:\users\tim hp.p2\pool\plugins\org.junit.jupiter.migrationsupport_5.0.0.v2

  • 我想寻求帮助,了解如何在JUnit测试中捕获IOException,以测试我的代码在发生错误时是否会抛出正确的异常。 以下是我的主要代码: 这是我的JUnit: 我想我必须在JUnit测试中创建一个错误的路径来抛出该异常,但我没能得到我想要的结果。我很感谢你的帮助。谢谢

  • 问题内容: 在JUnit中,您可以使用before方法来告诉测试运行器自动跳过那些测试。据我所知,这实际上只是记录/标记不完整的/不再需要的功能测试的一种便捷方法,您需要稍后再返回。 那么,我是否正确地说,在运行时,测试,没有注释的方法和注释掉的方法之间没有区别?(假设这些测试都是自包含的。)是否可以通过某种方法在Netbeans的JUnit中获取被忽略的测试用例的列表?如果没有,该标签实际上有多

  • 我的Junit测试使用DBUnit,从Eclipse运行时运行良好。但是,使用Maven运行相同的测试会导致以下一项测试失败: 我已经连续几次尝试从EclipseGUI(“作为JUnit测试运行”)运行该测试和整个测试集,但它们从未失败——但从Maven来看,它们确实失败了。 我对每个测试都使用@数据库设置,但这足以真正重置数据库吗?我还认为Maven可能会并行运行测试,所以我尝试在pom.xml

  • 使用Mockito示例页面中最基本的示例,我能够在JUnit中成功运行。 然而,当我在斯波克运行相同的测试时,它失败了。 JUnit/Java版本(通过): Spock/Groovy版本(此失败): 以下是斯波克测试失败时出现的错误: 有什么想法或建议吗?我真的很喜欢斯波克和莫奇托,希望他们能很好地合作。非常感谢!