2012-06-06 56 views
3

我试图执行自定义角色提供程序方法。每个测试都是独立的,这意味着它与其他测试无关,并且在每次测试中我都会创建测试用户,测试角色等。 这很好,我知道其他方法,但是这适合于此目的。单元测试自定义角色提供程序

所以,我用can_get_roles_for_user挣扎,这里的代码

[Test] 
public void can_get_roles_for_user() 
{ 
    MembershipCreateStatus status = new MembershipCreateStatus(); 
    provider.CreateUser("testuser", "password", "[email protected]", "question", "answer", true, Guid.NewGuid(), out status); 
    provider.CreateUser("testuser2", "password", "[email protected]", "question", "answer", true, Guid.NewGuid(), out status); 

    roleProvider.CreateRole("TestRole"); 
    roleProvider.CreateRole("AdministratorRole"); 

    string[] users = { "TestUser", "TestUserAdministrator" }; 
    string[] roles = { "TestRole", "AdministratorTestRole" }; 

    roleProvider.AddUsersToRoles(users, roles); 

    var user = _provider.GetUser("TestUser", false); 
    string[] userRoles = _roleProvider.GetRolesForUser(user.UserName); 

    **//WHAT SHOULD I ASSERT HERE?** 

} 

任何sugg,链接到你或其他一些测试角色提供商的欢迎。

感谢

回答

3

您可以简单地比较角色集合:

CollectionAssert.AreEquivalent(roles, _roleProvider.GetRolesForUser(user.UserName)); 
相关问题