我想創建一個方法,該方法需要一個testdelegate或委託並將參數傳遞給委託對象。這是因爲我正在爲控制器中的一個方法創建一個測試,它們都採用相同的參數(一個id),並且我不想爲所有控制器方法創建一個測試。將參數傳遞給NUnit中的TestDelegate
代碼,我有:
protected void AssertThrows_NullReference_Og_InvalidOperation(TestDelegate delegateMethod)
{
Assert.Throws<NullReferenceException>(delegateMethod);
Assert.Throws<InvalidOperationException>(delegateMethod);
Assert.Throws<InvalidOperationException>(delegateMethod);
}
我想怎麼辦:
protected void AssertThrows_NullReference_Og_InvalidOperation(TestDelegate delegateMethod)
{
Assert.Throws<NullReferenceException>(delegateMethod(null));
Assert.Throws<InvalidOperationException>(delegateMethod(string.Empty));
Assert.Throws<InvalidOperationException>(delegateMethod(" "));
}
編輯: 我忘了提,該控制器具有一個返回值。因此Action不能使用。
看到我的更新答案 –
你是對的。我在底部添加了我自己的解決方案,我借用了你的代碼並做了一些調整。謝謝你的幫助。 –