[英]Use code generation for executing generic tests
我认为我有一个有趣的问题,PERHAPS已经有了答案,这对我来说仍然是一个秘密,因此我希望从专家那里获得一些帮助。 :)
所以这是事情:
我为测试/验证团队工作以测试我们的Java API,基本上我的工作是遵循测试计划并编写测试代码。 写了两个多月后,我发现代码真的很相似。 例如:
要测试函数可以返回预期结果或正确抛出异常,我们可能需要编写几个.java来运行。
1.java建立服务器连接,连接客户端并发送请求,使用正确的值初始化变量并将其传递给函数A,捕获答案并进行分析
2.java设置服务器的连接,连接的客户端发送请求,开始与正确的价值观所有变量,但一个不好的价值,并通过他们起作用的,赶上了答案,并对其进行分析
3.java建立服务器连接,连接客户端并发送请求,以正确的值初始化所有变量,但以错误的值初始化两个变量,然后将它们传递给函数A,捕获答案并进行分析
因此,您会在三个Java测试文件中看到,它们中的大部分都足够相同或相似,甚至复制/粘贴也使工作很无聊,并且可能出错。
我想知道是否可以定义对应于不同行为的测试代码,然后为每个测试java文件定义一个包含该行为的文本,然后定义一个负责加载文本文件并根据最终组装测试Java文件的父类。到文本文件?
像这样:
文本文件:
1)设置服务器
2)连接客户端
3)发送请求
4)以正确的值初始化变量
5)以正确的值初始化变量,但以错误的值初始化变量
6)以正确的值启动变量,但以错误的值启动两个
7)捕获结果并进行分析
母亲.java
1)加载文本文件
2)创建一个son.java
3)找到对应于Text文件的代码并将其写入son.java
然后,编码器在IDE中打开son.java来检查语法,或者导入或发生任何冲突然后运行它。
我的想法可以实现吗? 已经有类似的东西了吗?
任何信息将不胜感激,感谢数百万提前!
老实说,这听起来不像是代码生成的好用例。 而不是为每个测试用例生成一个类,您应该实现一个更通用的测试实用程序,该实用程序将所需的输入作为其数据,并基于此数据执行通用测试代码。
从您编写的内容来看,例如,它类似于JUnit测试的简单基类:
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();
}
}
现在,您可以编写从该AbstractServerDependantTest
继承的三个测试类,而无需复制粘贴您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.