簡體   English   中英

運行時為testNG生成的DataProvider

[英]runtime generated DataProvider for testNG

我想為testNG創建擴展。 我想增加一種可能性,以字符串形式提供參數,解析這些字符串並轉換為復雜類型。 這樣的隱式數據提供者具有更少的樣板。 類似zohhak的junit。

@Test
@MyParameters({"1, 2014-02-12",
               "3, null",
               "7, 2012-08-23"})
public void testMethod(int number, Date date) {
  ...
}

但我完全不知道如何簡單地做到這一點。 我知道有監聽器,但看起來好像他們不能多次執行相同的方法或提供參數。 我能想到的唯一方法是通過數據提供程序動態生成一個類並分配該數據提供程序。 有沒有更簡單的解決方案?

似乎我做了類似的事情。 將嘗試解釋我做了什么:

信封:TestNg + Spring + XMLBeans

所有測試只有一個DataProvider(org.testng.annotations.DataProvider)。 它收到一個具有參數定義的xml文檔,例如

<test name="test1">
    <case>
        <parameter type=”bla.bla.bla.MyBean”>bean_id</parameter>
        <parameter type="int">1</parameter>
        <parameter type=”boolean”>true</parameter>
    </case>
</test>

測試方法看起來像這樣

@Test(dataProvider = "MyProvider")
public void test1(MyBean beanObj, int intParam, Boolean boolParam)
{
    …
}

因此,我唯一要做的就是實現“轉換”方法。 基於輸入xml創建Object [] []的方法。

“壞”的事情是“轉換”方法應該知道您需要的所有類型。 因此,我的情況相當大。

“好”的事情是只有一個數據提供程序,您不需要在測試中強制轉換對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM