如何在 Junit 5 中获取成功和不成功的断言列表
How to get list of successfull and unsuccessfull assertions in Junit5
我正在创建一些单元测试来检查不同的 API 是否正常工作。我想 运行 多个单个单元测试,并最终得到一个 working/not 工作列表 API。目前,我学习 Junit5 来这样做,并且很难理解如何 运行 所有断言,无论是否失败。
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class Junit5Utils {
@DisplayName("Re-usable test")
@Test
void testStrings(String a, String b){
System.out.println("re-usable test");
Assertions.assertArrayEquals(a.toCharArray(), b.toCharArray());
}
@DisplayName("Re-usable test")
@Test
void testDouble(double a, double b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@DisplayName("Re-usable test")
@Test
void testFloat(float a, float b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@DisplayName("Re-usable test")
@Test
void testInt(int a, int b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@Test
@Disabled("Disabled Test")
void disabledTest(){
System.out.println("Disabled Test");
}
}
public class Junit5Main {
public static void main(String[] args) {
Junit5Utils testUtils = new Junit5Utils();
testUtils.disabledTest();
testUtils.testStrings("asd", "asd");
testUtils.testStrings("asd", "dsa");
testUtils.testDouble(2.5,2.5);
testUtils.testInt(1, 1);
testUtils.testFloat(2.20f, 2.20f);
}
}
预期的结果是:
成功:要么什么都没有,要么 list/array 工作 APIs 基于断言
不成功:list/array 不工作 APIs 基于断言
实际结果是:
成功:如果全部成功,则无
不成功:调用断言直到报错
*****更新*****
我已经尝试将 Junit5 与 IDE 工具一起使用,行为是一样的。如果断言失败,则不会执行其余断言。这是默认行为吗?这可以以某种方式改变吗?任何帮助表示赞赏。
我的建议是获取任何 JUnit 或 JUnit5 教程以了解应该如何使用该库。
一旦您掌握了基本思想(但不是更早),请搜索“JUnit5 控制台 运行ner”以了解如何 运行 在没有 IDE 的情况下进行测试或构建周围的工具。
我正在创建一些单元测试来检查不同的 API 是否正常工作。我想 运行 多个单个单元测试,并最终得到一个 working/not 工作列表 API。目前,我学习 Junit5 来这样做,并且很难理解如何 运行 所有断言,无论是否失败。
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class Junit5Utils {
@DisplayName("Re-usable test")
@Test
void testStrings(String a, String b){
System.out.println("re-usable test");
Assertions.assertArrayEquals(a.toCharArray(), b.toCharArray());
}
@DisplayName("Re-usable test")
@Test
void testDouble(double a, double b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@DisplayName("Re-usable test")
@Test
void testFloat(float a, float b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@DisplayName("Re-usable test")
@Test
void testInt(int a, int b){
System.out.println("re-usable test");
Assertions.assertEquals(a, b);
}
@Test
@Disabled("Disabled Test")
void disabledTest(){
System.out.println("Disabled Test");
}
}
public class Junit5Main {
public static void main(String[] args) {
Junit5Utils testUtils = new Junit5Utils();
testUtils.disabledTest();
testUtils.testStrings("asd", "asd");
testUtils.testStrings("asd", "dsa");
testUtils.testDouble(2.5,2.5);
testUtils.testInt(1, 1);
testUtils.testFloat(2.20f, 2.20f);
}
}
预期的结果是: 成功:要么什么都没有,要么 list/array 工作 APIs 基于断言 不成功:list/array 不工作 APIs 基于断言
实际结果是: 成功:如果全部成功,则无 不成功:调用断言直到报错
*****更新*****
我已经尝试将 Junit5 与 IDE 工具一起使用,行为是一样的。如果断言失败,则不会执行其余断言。这是默认行为吗?这可以以某种方式改变吗?任何帮助表示赞赏。
我的建议是获取任何 JUnit 或 JUnit5 教程以了解应该如何使用该库。
一旦您掌握了基本思想(但不是更早),请搜索“JUnit5 控制台 运行ner”以了解如何 运行 在没有 IDE 的情况下进行测试或构建周围的工具。