C# 成员资格提供者的集成测试

C# 成员资格提供者的集成测试,c#,integration-testing,visual-studio-2013,asp.net-mvc-5,C#,Integration Testing,Visual Studio 2013,Asp.net Mvc 5,我正在尝试对成员资格提供程序进行集成测试。。。看起来是这样的: [TestClass] public class UnitTestMembershipProvider { [TestMethod] public void Are_There_Membership_Users() { // Arrange MembershipUserCollection users = Membership.GetAllUsers(); /

我正在尝试对成员资格提供程序进行集成测试。。。看起来是这样的:

[TestClass]
public class UnitTestMembershipProvider
{
    [TestMethod]
    public void Are_There_Membership_Users()
    {
        // Arrange
        MembershipUserCollection users = Membership.GetAllUsers();

        //Assert
        Assert.IsTrue(users.Count > 0);
    }
}
为什么我会得到以下结果

Test Name:  Are_There_Membership_Users
Test FullName:  Something.UnitTests.Controllers.UnitTestMembershipProvider.Are_There_Membership_Users
Test Source:    c:\Users\James\Source\Workspaces\Something\Something.UnitTests\Controllers\UnitTestMembershipProvider.cs : line 12
Test Outcome:   Failed
Test Duration:  0:00:00.0298722

Result Message: 
Test method Something.UnitTests.Controllers.UnitTestMembershipProvider.Are_There_Membership_Users threw exception: 
System.UnauthorizedAccessException: Access to the path 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 12.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\App_Data' is denied.
Result StackTrace:  
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
   at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
   at System.IO.Directory.CreateDirectory(String path)
   at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString)
   at System.Web.DataAccess.SqlConnectionHelper.EnsureDBFile(String connectionString)
   at System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation)
   at System.Web.Security.SqlMembershipProvider.GetAllUsers(Int32 pageIndex, Int32 pageSize, Int32& totalRecords)
   at System.Web.Security.Membership.GetAllUsers(Int32 pageIndex, Int32 pageSize, Int32& totalRecords)
   at System.Web.Security.Membership.GetAllUsers()
   at Something.UnitTests.Controllers.UnitTestMembershipProvider.Are_There_Membership_Users() in c:\Users\James\Source\Workspaces\Something\Something.UnitTests\Controllers\UnitTestMembershipProvider.cs:line 14

错误在错误消息中。也。。这是一个集成测试。。因为如果不模仿,你的会员资格提供者会攻击数据库。像这样的小细节:P(这是我一生中写的第二次测试..所以,是的,我想我还没有完全理解..呵呵。。这是否意味着这样的测试可以位于主应用程序内部,而不是单元测试区域?我意识到这个测试是多么微不足道。。这主要是一个实践案例。完美整合测试。它应该在集成测试区域中,具有一个连接字符串的配置,该字符串与成员数据库通信。我认为将它们从单元测试项目中分离出来是“非常”重要的。