草庐IT

Junit-Tests

全部标签

JUnit 5单元测试(二)—— 断言

目录前言一、单元测试规范和操作二、JUnit5提供的注解三、断言1.什么是断言2.断言方法四、assertThat断言1.int断言2.字符断言3.字符串断言4.boolean断言5.List和数组断言6.Map断言7.对象断言五、参数化测试1.参数化测试的规则2.值类型2.枚举类型3.外部csv文件类型4.方法类型六、JUnit5单元测试(三)——Mockito模拟前言上一篇讲了JUnit5单元测试(一)——基本配置,书接上文开始JUnit5单元测试(二)——断言一、单元测试规范和操作1.单元测试的类名应该起为xxxxTest.java表明这个一个测试类,类名应该用简洁的英文表明测试内容或函

java - 为什么只有在运行 JUnit 测试时堆空间才会用完?

在运行JUnit测试时,我似乎总是遇到这个错误:eclipseoutOfMemoryError:heapspace我使用JConsole监控了Eclipse,堆内存峰值约为150MB。我已将堆内存设置为1GB。我在启动Eclipse时使用以下参数:-vm"C:\ProgramFiles\Java\jre1.5.0_08\bin\javaw.exe"-vmargs-Xmx1024M-XX:MaxPermSize=128M-Dcom.sun.management.jmxremote.port=8999-Dcom.sun.management.jmxremote.ssl=false-Dcom

java - 为什么只有在运行 JUnit 测试时堆空间才会用完?

在运行JUnit测试时,我似乎总是遇到这个错误:eclipseoutOfMemoryError:heapspace我使用JConsole监控了Eclipse,堆内存峰值约为150MB。我已将堆内存设置为1GB。我在启动Eclipse时使用以下参数:-vm"C:\ProgramFiles\Java\jre1.5.0_08\bin\javaw.exe"-vmargs-Xmx1024M-XX:MaxPermSize=128M-Dcom.sun.management.jmxremote.port=8999-Dcom.sun.management.jmxremote.ssl=false-Dcom

java - 如何在多个测试类之间共享 JUnit BeforeClass 逻辑

目前,我所有的JUnit测试都从一个公共(public)基类扩展而来,该基类提供了标记有@BeforeClass和@AfterClass注释的方法-所有这些实际上都是设置一堆供测试使用的静态资源/服务。这对我来说似乎很尴尬,原因如下:JUnit4的部分观点(根据我的理解)是我们不再需要这种经典的测试继承。当我将这些测试作为套件的一部分而不是单独运行(我们经常这样做)时,@BeforeClass和@AfterClass会被多次调用,速度变慢测试——我们真的应该只调用一次我想做的是以某种方式将当前的BeforeClass/AfterClass逻辑从继承链中移出,并转移到可以由单个测试和整个

java - 如何在多个测试类之间共享 JUnit BeforeClass 逻辑

目前,我所有的JUnit测试都从一个公共(public)基类扩展而来,该基类提供了标记有@BeforeClass和@AfterClass注释的方法-所有这些实际上都是设置一堆供测试使用的静态资源/服务。这对我来说似乎很尴尬,原因如下:JUnit4的部分观点(根据我的理解)是我们不再需要这种经典的测试继承。当我将这些测试作为套件的一部分而不是单独运行(我们经常这样做)时,@BeforeClass和@AfterClass会被多次调用,速度变慢测试——我们真的应该只调用一次我想做的是以某种方式将当前的BeforeClass/AfterClass逻辑从继承链中移出,并转移到可以由单个测试和整个

java - JUnit @Before 与 @Rule

我明白了,@Before和@BeforeClass分别在每个测试或整个测试类之前运行@Rule和@ClassRule分别包装每个测试或整个测试类。假设我需要在每个测试方法之前初始化一些数据,如何在使用@Before和@Rule之间做出决定?在什么情况下优先于另一种?同样的问题也适用于@BeforeClass与@ClassRule。 最佳答案 为了使用@Rule,您需要一个实现TestRule(首选)或MethodRule的类,如here所示。@Before和@After要求在每个测试用例中编写一个新方法,而@Rule不需要,因为它只

java - JUnit @Before 与 @Rule

我明白了,@Before和@BeforeClass分别在每个测试或整个测试类之前运行@Rule和@ClassRule分别包装每个测试或整个测试类。假设我需要在每个测试方法之前初始化一些数据,如何在使用@Before和@Rule之间做出决定?在什么情况下优先于另一种?同样的问题也适用于@BeforeClass与@ClassRule。 最佳答案 为了使用@Rule,您需要一个实现TestRule(首选)或MethodRule的类,如here所示。@Before和@After要求在每个测试用例中编写一个新方法,而@Rule不需要,因为它只

java - JUnit + Maven : accessing ${project. build.directory} 值

在我的单元测试中,我想在${project.build.directory}中创建一个tmp目录。如何在单元测试中访问${project.build.directory}的值?我能想到的一种方法是在测试资源中提供一个过滤的属性文件,该文件包含该值。(我还没有尝试过,但我认为应该可以。)有没有直接的方法来访问/传递这个属性值? 最佳答案 我以前使用过类似的东西并取得了一些成功。即使不使用Maven,单元测试仍将运行,目标目录仍将创建两个相对于运行测试的cwd的目录。publicFiletargetDir(){StringrelPath

java - JUnit + Maven : accessing ${project. build.directory} 值

在我的单元测试中,我想在${project.build.directory}中创建一个tmp目录。如何在单元测试中访问${project.build.directory}的值?我能想到的一种方法是在测试资源中提供一个过滤的属性文件,该文件包含该值。(我还没有尝试过,但我认为应该可以。)有没有直接的方法来访问/传递这个属性值? 最佳答案 我以前使用过类似的东西并取得了一些成功。即使不使用Maven,单元测试仍将运行,目标目录仍将创建两个相对于运行测试的cwd的目录。publicFiletargetDir(){StringrelPath

java - 使用 JUnit 比较 ArrayList 是否相等的简单方法?

使用JUnit比较ArrayList是否相等的简单方法是什么?我需要实现相等接口(interface)吗?或者有没有简单的JUnit方法让它变得更简单? 最佳答案 你不需要为列表相等做任何特别的事情,只需使用assertEquals。ArrayList和其他列表通过使用对象的equals()方法检查列表对应位置的所有对象是否相等来实现equals()。因此,您可能需要检查列表中的对象是否正确实现。 关于java-使用JUnit比较ArrayList是否相等的简单方法?,我们在StackO