gpt4 book ai didi

asp.net-mvc - 如何在 ASP.NET MVC 中模拟 Membership 类以启用测试

转载 作者:行者123 更新时间:2023-12-01 02:52:32 27 4
gpt4 key购买 nike

我正在构建一个允许用户注册的 ASP.NET MVC 3 站点。为此,我使用内置(静态)Membership类(class);有人说它很臃肿,但它工作得很好而且很容易,所以你就在那里。

无论如何,我已经开始编写将处理用户帐户相关功能的 AdminService 类,让我们假设它只有一种方法:

public class AdminService : IAdminService
{
public void DeleteUser(string username)
{
Membership.DeleteUser(username);
}
}

以两种方式错误地使用 Membership 类:它不能通过 IoC 注入(inject),而且我发现为 IAdminService 编写规范(测试)越来越困难。因为我不能模拟 Membership 类(class)。

有没有办法让 ASP.NET Membership 类对测试友好并且对依赖注入(inject)友好,而无需自己动手?

在功能方面,Membership 类运行良好,更重要的是,它
现在可以工作了,所以我真的不愿意开始编写自己的 MembershipProvider ,因为它只会减慢我的速度。

最佳答案

如果您创建非空的 ASP.NET MVC 3 项目,您的 Models 文件夹中将有 AccountModels.cs 文件。它包含一个如何处理成员资格以启用单元测试的示例:

public interface IMembershipService
{
int MinPasswordLength { get; }

bool ValidateUser(string userName, string password);
MembershipCreateStatus CreateUser(string userName, string password, string email);
bool ChangePassword(string userName, string oldPassword, string newPassword);
}

关于asp.net-mvc - 如何在 ASP.NET MVC 中模拟 Membership 类以启用测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com