【发布时间】:2009-12-10 20:13:55
【问题描述】:
我创建了一个 MVC 应用程序,并设置了 Roger Martin's sqlite Providers 来代替默认的 Providers。我很好奇我将如何对这些进行单元测试。
下面是一个精简的方法,它有许多验证,只有一个仍然存在。除其他外,我想编写测试以确保如果用户名已被占用则无法注册,并且如果用户名是免费的(并且其他验证通过)则可以注册,等等。
我可以看到单元测试如何确定成功或失败,但不会因为特定原因而失败,除非我检查输出 MembershipCreateStatus 参数,但我不确定是否有更好的方法。此外,我需要为对象 providerUserKey 提供什么?任何见解都会非常有帮助。
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
//some validations, and then:
MembershipUser u = GetUser(username, false);
if (u == null)
{
///register user
status = MembershipCreateStatus.Success;
return GetUser(username, false);
}
else
{
status = MembershipCreateStatus.DuplicateUserName;
}
return null;
}
【问题讨论】:
-
您是在尝试对 SQLite 成员资格提供程序或控制器中的代码进行单元测试吗?
-
目前,SQLite 成员资格提供程序。我想确保帐户注册因特定且有效的原因而被拒绝。我还没有开始编写控制器,但我认为为它编写测试没有问题。
标签: asp.net-mvc unit-testing model-view-controller nunit membership