繁体   English   中英

使用代码生成执行通用测试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM