如何对使用System的方法进行单元测试.网状物安全内部的会员资格



我想测试一个方法来检查它是否正确地保存了事务。里面叫会员制。GetUser()来验证每次导致测试失败的用户。有没有什么方法可以嘲笑这样的会员资格。GetUser()总是返回一个有效的名称?

我使用的是Moq、C#和ASP。Net 4.5 MVC

简而言之,你做不到。这就是为什么对这样一个"服务"的每次调用都应该隐藏在抽象之后。

您可以在默认MVC模板中看到这样的示例。

是的,就像Serg所说的,你可以通过为真正的服务提供一个接口来实现这一点。这个接口将具有您正在调用的公共方法,例如:

public interface IMyServiceInterface
{
    IMembershipUser GetUser();
    // other methods you want to use...
}

在单元测试中,你会说:

var mockService = new Mock<IServiceInterface>();
mockService.Setup(mock => mock.GetUser()).
    Returns(new MembershipUserImplementation("MyTestUser", otherCtorParams));

在我的例子中,我会为MembershipUser创建一个包装器,因为它似乎也需要在抽象后面。

最新更新