2012-06-06 50 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)); 
相關問題