5
我正在嘗試使用Moq 3.x,它的工作非常好。但是,我有一個問題,我無法弄清楚如何解決。鑑於Moq with Action參數
public interface ITestSpec
{
bool Run(Action<string, string> onIncorrectResponse);
}
我嘗試以下操作:
var passingTestSpec = new Mock<ITestSpec>();
passingTestSpec
.Setup(m => m.Run(null))
.Returns(true);
Action<string, string> fakeAction =
(expected, actual) => { throw new Exception("Should not run"); };
Assert.IsTrue(passingTestSpec.Object.Run(fakeAction));
我的問題是,在passingTestSpec.Object.Run任何呼叫(...一些動作...)返回false。看起來,Moq庫正在嘗試將該操作與我在Setup()調用中傳遞給Run()的參數進行匹配,並且失敗。實際上,我在Run()調用中放置什麼操作並不重要......它仍然返回false。
任何想法?
[編輯]我剛發現了一些東西;如果我用
.Setup(m => m.Run(fakeAction))
代替測試通過。但是,我不知道將調用.Run()方法的操作,所以這不是一個解決方案。任何人都知道一個It.IsAny等同於行動?
LOL我應該知道有人會找到解決辦法......認爲我浪費了幾個小時,在這個:(謝謝,我也有去,這是更好比我的。 – 2009-05-17 17:50:58