1

こんにちは、統合テストを書いています。

私の方法は

public IList<string> GetUsersRecursively(string groupName)
    {
        using (var context = GetPrincipalContext())
        {
            using (var group = GroupPrincipal.FindByIdentity(context, groupName))
            {
                using (var users = group.GetMembers(true))
                {
                    return (from user in users 
                            orderby user.SamAccountName
                            select user.SamAccountName
                            ).ToList();
                }; // recursively enumerate
            }
        }
        //          return results;
    }

そして、私が書いたテストは

    [Test]
    public void GetUsersRecursively()
    {
        // Arrange
        var target = this.provider;
        string groupName = "CAS_Branch_Manager";
        string expectedUsername = "test.branchmanager";

        // Act
        var result = this.provider.GetUsersRecursively(groupName);

        // Assert
        Assert.NotNull(result);
        CollectionAssert.Contains(result, expectedUsername);
    }

しかし、それを resharper で実行すると、次のエラーが表示されます

System.DirectoryServices.AccountManagement.PrincipalServerDownException : サーバーに接続できませんでした。----> System.DirectoryServices.Protocols.LdapException : LDAP サーバーを利用できません。

次に、例外を処理するために、次のように記述しました

            [Test]
    [ExpectedException(typeof(PrincipalServerDownException ))]
    public void GetUsersRecursively()
    {
        // Arrange
        var target = this.provider;
        string groupName = "CAS_Branch_Manager";
        string expectedUsername = "test.branchmanager";

        // Act
        var result = this.provider.GetUsersRecursively(groupName);

        // Assert
        Assert.NotNull(result);
        CollectionAssert.Contains(result, expectedUsername);
    }

しかし、現在、シンボル「PrincipalServerDownException」を解決できないため、PrincipalServerDownException がエラーを表示しています。どのようにそれを解決する?

4

1 に答える 1

0

テスト プロジェクトで 'System.DirectoryServices' アセンブリへの参照を追加する必要がある場合があります。

于 2013-02-05T07:49:20.420 に答える