Unit testing 来自默认ASP.NETMVC4应用程序项目的单元测试AccountController
我正在开发MVC4应用程序,并对创建一组控制器单元测试感兴趣。我所有尝试从AccountController单元测试方法的结果都与Unit testing 来自默认ASP.NETMVC4应用程序项目的单元测试AccountController,unit-testing,asp.net-mvc-4,simplemembership,Unit Testing,Asp.net Mvc 4,Simplemembership,我正在开发MVC4应用程序,并对创建一组控制器单元测试感兴趣。我所有尝试从AccountController单元测试方法的结果都与WebMatrix.WebData.WebSecurity: 要调用此方法,“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。 我使用的是通过初始化SimpleMembership属性初始化的SimpleMembership提供程序 有人能提供如何正确地做这件事的指导吗?我将不再回答这个问题,因为这在评
WebMatrix.WebData.WebSecurity:
要调用此方法,“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。
我使用的是通过初始化SimpleMembership属性初始化的SimpleMembership
提供程序
有人能提供如何正确地做这件事的指导吗?我将不再回答这个问题,因为这在评论中会变得非常难看。我所做的是在我的测试项目中添加一个成员资格提供者。我有一个自定义的成员资格提供程序,但在您的情况下,app.config将如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider"
type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
</system.web>
</configuration>
您可能会收到关于WebMatrix缺少参考的投诉。添加以下参考:
- WebMatrix.Data
- WebMatrix.WebData
true
然后确保调用WebSecurity.InitializeDatabaseConnection
,就可以开始了
希望这能有所帮助。我将不再回答这个问题,因为这在评论中会变得非常难看。我所做的是在我的测试项目中添加一个成员资格提供者。我有一个自定义的成员资格提供程序,但在您的情况下,app.config将如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider"
type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/>
</providers>
</membership>
</system.web>
</configuration>
您可能会收到关于WebMatrix缺少参考的投诉。添加以下参考:
- WebMatrix.Data
- WebMatrix.WebData
true
然后确保调用WebSecurity.InitializeDatabaseConnection
,就可以开始了
希望这有帮助。您是否在测试项目的app.config中定义了您的成员资格提供商?bas,您能否详细说明“定义”一词?我在web项目中使用默认实现。使用InitializeSimpleMembership属性初始化成员资格提供程序。一切都很完美,除了我无法对帐户控制器进行单元测试。您是否在测试项目的app.config中定义了您的成员资格提供程序?bas,您能否详细说明“定义”?我在web项目中使用默认实现。使用InitializeSimpleMembership属性初始化成员资格提供程序。除了我无法对Account controller进行单元测试之外,一切都很完美。或者,您可以包装成员资格提供程序,并延迟加载它,以便在单元测试中模拟它。不确定您试图实现什么,但成员身份可能是您希望在单元测试中排除的东西。我认为您关于“但成员身份可能是您希望在单元测试中排除的东西”的建议很好,但这是我单元测试的目的:)。无论如何,您建议在WebMatrix.WebData.WebSecurity.Login():System.Web.Security.FormsAuthentication.SetAuthCookie(字符串用户名、布尔值createPersistentCookie、字符串strCookiePath)中包含SimplemenerShip配置,但它现在失败了您遇到了一个特定的异常?或者您可以只包装成员资格提供程序,并延迟加载它,以便在单元测试中模拟它。不确定您试图实现什么,但成员身份可能是您希望在单元测试中排除的东西。我认为您关于“但成员身份可能是您希望在单元测试中排除的东西”的建议很好,但这是我单元测试的目的:)。无论如何,您建议在WebMatrix.WebData.WebSecurity.Login():System.Web.Security.FormsAuthentication.SetAuthCookie(字符串用户名、布尔值createPersistentCookie、字符串strCookiePath)中包含SimplementerShip配置,但现在失败了。您遇到了特定的异常吗?