如何使用VS Test Framework测试asp.net成员资格,配置文件,角色?

时间:2009-04-16 16:50:55

标签: asp.net unit-testing asp.net-membership

如果我们尝试使用asp.net成员资格框架测试某些内容,我们会遇到一些错误。它似乎无法实例化asp.net成员资格环境,因此无法访问所有配置文件,用户等。

有没有人见过类似的问题?或者它适合某人?

干杯, 史蒂夫

3 个答案:

答案 0 :(得分:1)

如果您依赖外部资源(例如数据库和配置文件(使用ASP.NET成员资格时使用)),那么您就不会编写非常有效的单元测试。您必须保持所有内容同步,包括数据库中的数据。这是因为维护噩梦。

如果您想以这种方式进行测试,我建议您将配置设置为具有成员资格(您可以从应用程序中获取此成员)。然后,您还需要设置要连接的测试数据库。它需要填充假数据,因此您需要脚本来确保数据一致。

但是,我会建议您采取更合适的单元测试方法。当我们提到“单元测试”时,我们的意思是一次只测试一小段代码。此代码不应依赖于其他任何内容,因此您需要做的是使用接口并使用假货,存根或模拟,以便将测试范围包含在单个代码单元中。

如果你想走这条路,我强烈建议你阅读 Working Effectively with Legacy Code 。还有很多其他书籍和资源,讨论如何找到接缝和解耦代码,以便您能够测试它。一旦你掌握了单元测试,你会很高兴看到这个。

答案 1 :(得分:0)

测试框架正在查看测试项目的web.config文件,该文件可能没有正确的配置。您应该在身份验证/成员资格提供程序周围编写接口,并编写一些虚拟实现来进行测试。

答案 2 :(得分:0)

继续Benrick的回答 - 我建议你看看ASP.NET MVC项目 - 这里有你需要正确 unit <的接口和包装器的例子/ em>测试你的代码。

由于AccountController.cs文件中的注释状态:

  

FormsAuthentication类型是密封的并且包含静态成员,因此很难对调用其成员的代码进行单元测试。下面的接口和帮助器类演示了如何围绕这种类型创建一个抽象包装器,以使AccountController代码单元可测试。