Java 使用代码生成来执行泛型测试
我想我有一个有趣的问题,也许已经有了答案,这对我来说仍然是个秘密,所以我希望能从专家那里得到一些帮助 这就是问题所在: 我为测试/验证团队工作以测试我们的JavaAPI,基本上我的工作是遵循测试计划并编写测试代码。在写了两个多月之后,我发现代码非常相似。例如: 为了测试函数是否能够正确返回预期结果或抛出异常,我们可能需要编写几个.java来运行 1.java设置服务器连接,连接客户端并发送请求,启动具有正确值的变量并将其传递给函数A,获取答案并进行分析 2.java设置服务器连接,连接客户端并发送请求,启动所有值正确但值不正确的变量,并将其传递给函数A,获取答案并进行分析 3.java设置服务器连接,连接客户端并发送请求,使用正确的值启动所有变量,但使用错误的值启动两个变量,并将它们传递给函数A,获取答案并对其进行分析 因此,您可以在三个java测试文件中看到,它们的大部分都是相同或相似的,甚至复制/粘贴都会使工作变得枯燥,并且可能出错 我想知道是否可以定义对应不同行为的测试代码,然后对于每个测试java文件,我定义一个包含行为的文本,然后定义一个负责加载文本文件并根据文本文件组装最终测试java文件的母类 像这样: 文本文件: 1设置服务器 2连接客户端 3发送请求 4用正确的值初始化变量 5使用正确值启动变量,但使用错误值启动变量 6使用正确值启动变量,但使用错误值启动两个变量 7捕捉结果并进行分析 Mother.java 1加载文本文件 2创建一个son.java 3找到文本文件对应的代码并将其写入son.java 然后,编码器在IDE中打开son.java来检查语法,或者导入或任何冲突,然后运行它 我的想法能实现吗?已经有类似的东西了吗Java 使用代码生成来执行泛型测试,java,testing,code-generation,Java,Testing,Code Generation,我想我有一个有趣的问题,也许已经有了答案,这对我来说仍然是个秘密,所以我希望能从专家那里得到一些帮助 这就是问题所在: 我为测试/验证团队工作以测试我们的JavaAPI,基本上我的工作是遵循测试计划并编写测试代码。在写了两个多月之后,我发现代码非常相似。例如: 为了测试函数是否能够正确返回预期结果或抛出异常,我们可能需要编写几个.java来运行 1.java设置服务器连接,连接客户端并发送请求,启动具有正确值的变量并将其传递给函数A,获取答案并进行分析 2.java设置服务器连接,连接客户端并发
任何信息将不胜感激,提前感谢数百万 老实说,这听起来不像是代码生成的好用例。您不应该为每个测试用例生成一个类,而应该实现一个更通用的测试实用程序,它将所需的输入作为其数据,并基于该数据执行通用测试代码 从您编写的内容来看,这可能类似于测试的简单基类: 现在,您可以编写三个测试类,它们继承自这个AbstractServerDependent测试,而无需复制粘贴代码
abstract class AbstractServerDependantTest {
protected Server server;
protected Client client;
@Before
public void setUp() {
server = new Server();
server.start();
client = new Client();
client.connectTo(server);
}
@After
public void tearDpwm() {
client.disconnect();
server.shutDown();
}
}