【发布时间】:2011-10-30 19:44:19
【问题描述】:
我试图模拟一个从通用父类继承的方法。知道我的代码是这样的。
public interface IBaseRepository<T>
{
IEnumerable<T> FindMany(Func<T, bool> condition);
}
public interface IPersonRepository : IBaseRepository<person>
{
//Here I got some specifics methods for person repository
}
我的测试代码是这样的;
private IPersonRepository mockPersonRepository { get; set; }
[TestMethod]
public void TestMehtod()
{
LogonModel model = CreateLogonModel("test@test.com", "test", "Index");
person p = new person() { Email = model.Email, password = model.Password, PersonId = 1 };
mockPersonRepository.Stub(x => x.FindMany(y => y.Email == model.Email && y.password == model.Password)).Return(new List<person> {p});
mockPersonRepository.Replay();
var actual = instanceToTest.LogOnPosted(model) as PartialViewResult;
Assert.AreEqual("_Login", actual.ViewName);
}
当我在 vs 2010 中使用调试工具时,我可以看到我的 Stub,不起作用,返回的人始终为空。我已将 FindMany 方法声明为虚拟方法。
有人知道如何存根该方法吗?我正在使用 RhinoMocks。
【问题讨论】:
标签: c# model-view-controller unit-testing rhino-mocks