gpt4 book ai didi

java - 如何以编程方式为 TestNG 创建测试?

转载 作者:行者123 更新时间:2023-12-04 05:13:41 26 4
gpt4 key购买 nike

我正在编写一个库来为我的 JPA 自动生成单元测试 @Entity类。简而言之:用户提供一个多图的字段 -> 值对,我的库为它们生成测试。

示例测试数据:

lastName -> some name, some other name
firstName -> some first name, some other first name

假设我有一个包含测试的类:
public class PersonTest
{
@Test
public void personNotValidNullLastname() {
// ...
}

@Test
public void personNotValidTooLongLastname() {
// ...
}

@Test
public void personNotValidDateofbirth() {
// ...
}

@Test
public void personValidAddressType() {
// ...
}
// ...
}

如果我执行这些测试,我会从 TestNG 控制台得到一些不错的输出:
PASSED: personNotValidDateofbirth
PASSED: personNotValidNullLastname
PASSED: personNotValidTooLongLastname
PASSED: personValidAddressType

现在我想即时创建一些测试。如果我使用 @Factory用这样的方法注释:
@Factory
public Object[] generateTests() {
// ...
}

这个工厂创建了我的自定义类的实例:
public class EntityFieldTest
{
// ...

@Test
public void doTest()
{
testMethod.run(VALIDATOR, entityClass, field, value);
}
}

// Note that testMethod is an anonymous function parametrized elsewhere

它将运行我生成的所有测试,但输出内容不多:
PASSED: doTest
PASSED: doTest
PASSED: doTest
PASSED: doTest

如何执行我的测试方法以实现更详细的结果,如 PersonTest ?

最佳答案

制作 EntityFieldTest实现 org.testng.ITest 并覆盖 getTestName() .您提到您正在创建 EntityFieldTest 的实例在工厂里面,所以提供一个 EntityFieldTest构造函数,它接受一个表示该测试名称的字符串。然后在 getTestName() 中返回该值.

关于java - 如何以编程方式为 TestNG 创建测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14565342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com