2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
對(duì)于如此復(fù)雜的數(shù)據(jù),改為使用DynamicData屬性
該屬性允許從方法或?qū)傩垣@取參數(shù)值。該方法或?qū)傩员仨毞祷匾粋€(gè)IEnumerable<object[]>. 每行對(duì)應(yīng)于測(cè)試的值。
[DataTestMethod]
[DynamicData(nameof(TestDataMethod), DynamicDataSourceType.Method)]
public void TestCOMPortSorting(string[] unorderedPorts, string[] expectedOrderedPorts) {
? ? //...
}
static IEnumerable<object[]> TestDataMethod() {
? ? return new[] {
? ? ? ? new []{ new[] { "COM3", "COM1", "COM2" }, new[] { "COM1", "COM2", "COM3" } } //a data row
? ? };
}

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
DataRowAttribute可以處理簡(jiǎn)單類(lèi)型的數(shù)組。這里的問(wèn)題是,DataRowAttribute多個(gè)參數(shù)具有以下重載:DataRowAttribute(object data1, params object[] moreData)。
在你的表達(dá)式中,我認(rèn)為 C# 將第二個(gè)字符串?dāng)?shù)組作為 ,object[] moreData但它不喜歡它。如果顯式指定params object[]參數(shù),它將按預(yù)期采用第二個(gè)字符串?dāng)?shù)組。
[DataTestMethod]
[DataRow(
new[] { "COM3", "COM1", "COM2" },
new object[] { new[] { "COM1", "COM2", "COM3" } }
)]
...
public void TestCOMPortSorting(string[] unorderedPorts, string[] expectedOrderedPorts)
請(qǐng)注意,如果您有任何其他第三個(gè)參數(shù),則無(wú)需解決方法即可工作。
- 2 回答
- 0 關(guān)注
- 169 瀏覽
添加回答
舉報(bào)