簡體   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