2009-05-27 170 views
1

我熟悉JUnit中使用的參數測試,e.g:解決方案參數測試

http://junit.org/apidocs/org/junit/runners/Parameterized.html

,但我想知道是否有到外部定義的測試數據的替代(可能更好)方法。我真的不想在我的源文件中對我的測試數據進行硬編碼 - 我寧願用XML或其他某種結構化的方式來定義它。

是否有一個特定的框架或擴展框架,爲我提供比標準JUnit方法更好的解決方案。最明顯的方法是什麼?

編輯:我熟悉FIT框架和它在這種情況下的使用,我想避免,如果可能的話。如果有一個JUnit擴展或類似框架提供了比TestNG更好的解決方案,那麼請讓我知道。

回答

1

所以我發現TestNG的方法來此,它允許您爲測試指定參數,更可以在這裏找到信息:

http://testng.org/doc/documentation-main.html#parameters-testng-xml

這方面的一個例子是:

@Parameters({ "first-name" }) 
@Test 
public void testSingleString(String firstName) { 
    System.out.println("Invoked testString " + firstName); 
    assert "Cedric".equals(firstName); 
} 

和:

<suite name="My suite"> 
    <parameter name="first-name" value="Cedric"/> 
    <test name="Simple example"> 

您還可以使用數據源(例如Apache Derby)來指定這個測試數據,我想知道這是多麼靈活的解決方案。

0

在參數化測試示例中,我沒有看到任何需要您將數據存儲在類本身中的東西。使用從xml文件中提取數據並返回Object [] []的方法,並調用它在示例中使用靜態代碼的位置。如果你想切換TestNG,當然,他們已經爲你編寫了一個XML解析器。它看起來像JUnitExt也有一個JUnit 4,或者你可以寫一個你自己的。