2017-08-01 43 views
2

一個xUnit的測試案例比方說,我有一個已使用的xUnit寫了下面的測試案例:轉換使用MemberData到NUnit的

public static IEnumerable<object[]> testValues = new List<object[]> 
{ 
    new object[] {new double?[] {0.0}, 0.0, 0.0}, 
}; 

[Theory] 
[MemberData(nameof(testValues))] 
public void Test1(double?[] values, double expectedQ1, double expectedQ3) 
{ 
    // Test code 
} 

我怎麼能表達NUnit的,而不是xUnit的相同單元測試?

注意:這裏的主要問題似乎是使用MemberData,迄今爲止,我還沒有找到一個nUnit等價物。在nUnit中表達這種單元測試用例的正確方法是什麼?

回答

4

像這樣:

public static IEnumerable<object[]> testValues = new List<object[]> 
{ 
    new object[] {new double?[] {0.0}, 0.0, 0.0}, 
}; 

[TestCaseSource(nameof(testValues))] 
public void Test1(double?[] values, double expectedQ1, double expectedQ3) 
{ 
    // Test code 
} 

注意NUnit的有TheoryAttribute但你不想在這裏。在NUnit中,理論不僅僅是一個參數化測試。在決定是否需要它之前,您應該閱讀文檔以瞭解它是什麼。當然,你也應該閱讀TestCaseSourceAttribute。 :-)

在NUnit的其它屬性,其允許測試情況下要指定的數據包括TestCaseAttributeValuesAttributeValueSourceAttributeRandomAttributeRangeAttribute

+0

非常感謝! TestCaseSource就是我一直在尋找的東西。 – Cesar