英文:
JUnit5 - Showcase test case name dynamically from json file
问题
Sure, here's the translated code part:
我想要在使用Junit5运行测试用例时动态显示测试用例名称..所以请在这方面帮助我
@ParameterizedTest
@JsonFileSource(resouce="file1.json")
public void abcTest(JsonObje obj){
}
file1.json
[{
"test-case-name" : "婴儿测试用例",
"ageGroup" : "婴儿"
},
{
"test-case-name" : "成年人测试用例",
"ageGroup" : "成年人"
},
{
"test-case-name" : "成熟人士测试用例",
"ageGroup" : "成熟人士"
}
]
我想要在使用Junit5运行测试用例时动态显示测试用例名称..
例如 ... :
婴儿测试用例
成年人测试用例
成熟人士测试用例
...
我想要在使用Junit5运行测试用例时动态显示测试用例名称..
例如
英文:
I want to display test case name dynamically on running the test cases using Junit5..so please help me on that
@ParameterizedTest
@JsonFileSource(resouce="file1.json")
public void abcTest(JsonObje obj){
}
file1.json
[{
"test-case-name" : "test case for infant",
"ageGroup" : "infant"
},
{
"test-case-name" : "test case for adult",
"ageGroup" : "adult"
},
{
"test-case-name" : "test case for mature",
"ageGroup" : "mature"
}
]
I want to display test case name dynamically on running the test cases using Junit5..
For example ... :
test case for infant
test case for adult
test case for mature
...
I want to display test case name dynamically on running the test cases using Junit5..
For example
答案1
得分: 1
你没有提供太多信息,但我认为你想要使用[Junit的动态测试](https://junit.org/junit5/docs/current/user-guide/#writing-tests-dynamic-tests),而不是参数化测试。
@TestFactory
Collection<DynamicTest> dynamicTestsFromCollection() {
JsonArray array = ...
List<DynamicTest> tests = new ArrayList<>();
for (JsonObject testCase: array) {
String testCaseName = testCase.get("test-case-name");
String ageGroup = testCase.get("age-group");
tests.add(DynamicTest.dynamicTest(testCaseName, () -> testAbc(ageGroup)));
}
return tests;
}
这将为每个年龄组创建一个单元测试。
英文:
You don't give much information, but I believe that you want JUnit's Dynamic Tests, instead of parameterized tests.
@TestFactory
Collection<DynamicTest> dynamicTestsFromCollection() {
JsonArray array = ...
List<DynamicTest> tests = new ArrayList<>();
for (JsonObject testCase: array) {
String testCaseName = testCase.get("test-case-name");
String ageGroup = testCase.get("age-group");
tests.add(DynamicTest.dynamicTest(testCaseName, () -> testAbc(ageGroup)));
}
return tests;
}
This will create a unit test for each of your age groups.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论