我正在使用自定义asp.net成员资格提供程序,并使用nhibernate数据访问代码,这很好。现在我需要使用测试来锻炼这些方法。测试自定义ASP.NET成员资格提供程序
有兴趣提出这些方法应该如何测试的人?提供一些链接来解释使用一些标准的测试方法可能?
这是我的第一个问题,所以要温柔:)
我正在使用自定义asp.net成员资格提供程序,并使用nhibernate数据访问代码,这很好。现在我需要使用测试来锻炼这些方法。测试自定义ASP.NET成员资格提供程序
有兴趣提出这些方法应该如何测试的人?提供一些链接来解释使用一些标准的测试方法可能?
这是我的第一个问题,所以要温柔:)
当涉及到单元测试,做与数据库或第三方库的东西,你应该去耦这些依赖关系,使任何代码的测试,只有测试你的代码。例如,如果我们的成员资格提供程序中有一个用于添加单个用户的方法,那么我们要测试的是我们的单一方法的代码正常工作,而不是数据库已启动并正在运行,或者该方法由此方法调用工作。即使数据库处于脱机状态,或者其他类的方法调用失败,我们的单元测试仍应该通过。
这是Mocking进场的地方。你会想要嘲笑你的数据上下文,并设置你将要使用的任何方法,这样你就可以控制它的响应。
仔细查看您的会员提供商的方法。每个人应该做什么?这是你真正想测试的唯一的东西。这种方法作为一个独立的单位来完成我期待的工作吗?
会员提供商很难模拟和测试,所以我个人不打扰。然而,我所做的是将所有我的会员代码放在为的类别中,方便测试。
我大部分的自定义提供的是这个样子:
public class CustomMembershipProvider : MembershipProvider
{
private readonly IUserService _userService;
public ButlinsMembershipProvider()
{
_userService = DI.Resolve<IUserService>();
}
public override bool ValidateUser(string username, string password)
{
return _userService.Authenticate(username, password);
}
}
在这个例子中,我会写集成测试,以验证用户服务的行为。我不测试提供者。
你试过这个吗? http://geekswithblogs.net/AzamSharp/archive/2007/12/30/118071.aspx – Grunf