我想添加一個單元測試到我有的認證類。所以,基本上它所做的是我撥打Login
,我希望它會返回true,並且副作用會添加一個cookie。如何使用Moq並只檢查傳入函數的對象的一部分?
這裏是我的單元測試至今:
var mock=new Mock<IServerContext>(); //AddCookie method is within IServerContext
FSCAuth.Config.Server=mock; //set authentication to use mocked interface
mock.Setup(x=>x.AddCookie(new HttpCookie().Name=="??")); //question here
FSCAuth.Login("foo", "bar", false);
mock.VerifyAll();
我的問題是我怎麼能檢查傳入的addCookie的說法?基本上,我想要做的就是像
bool AddCookieVerify(HttpCookie cookie)
{
return cookie.Name=="foobar"
}
如果我的驗證函數返回false,然後拋出一個錯誤。我不明白如何在Moq中表達這個操作。
我該怎麼做?