尝试使用RhinoMock模拟函数。
var repository = new Rhino.Mocks.MockRepository();
var classMock = repository.DynamicMock<Customer>();
Expect.Call(classMock.getCustomerAge("john")).Return(12);
问题是在Expect.Call行中它实际上调用了它应该模拟的函数。难道我做错了什么?嘲笑的目的不是你不必运行实际的功能吗?
public class AgeProvider
{
private static Service _Service;
private static string _User;
public AgeProvider()
{
}
public AgeProvider(ISession session, string authenticatedUser)
{
_Service = new Service(session);
_user = authenticatedUser;
}
public int getCustomerAge(string userToSearch)
{
var user = _Service.FindUser(_user, userToSearch);
return user.age;
}
}
简化了类,我正在尝试模拟函数。
答案 0 :(得分:4)
是虚拟的方法吗?我认为如果你在嘲笑一个类而不是一个接口,你还需要使用局部模拟。
答案 1 :(得分:2)
这可能是因为你正在使用较旧的记录/重放语义。相反,使用新的AAA(安排/行动/断言)风格:
classMock.Stub(r => r.getCustomerAge("john")).Return(12);