简体   繁体   English

测试asp.net成员资格提供程序的2个问题

[英]2 problems with testing asp.net membership provider

I have created a unit test to search for users by name. 我创建了一个单元测试,以按名称搜索用户。 I have 2 problems I cant figure out. 我有2个无法解决的问题。

  1. Assert.IsTrue(coll.Count == 2) doesnt count the users as it should. Assert.IsTrue(coll.Count == 2)不会对用户进行应有的计数。 There should be 2 users and it only counts 1. 应该有2个用户,并且只计数1。

  2. Assert.IsTrue(usernames.Contains("testUser")); doesn't find the partial username string as it should. 找不到应有的部分用户名字符串。 Can someone tell me what I'm doing wrong? 有人可以告诉我我在做什么错吗?

Here is my code: 这是我的代码:

[TestMethod]
public void TestFindUsersByName()
{
    //set test to crate user 
    AsaMembershipProvider prov = this.GetMembershipProvider();
    MembershipCreateStatus status;
    //creates users
    MembershipUser user1 = prov.CreateUser("testUser1", "12345", "test.User1@abc.com", "", "", true, null, out status);
    MembershipUser user2 = prov.CreateUser("testUser2", "12345", "test.User2@abc.com", "", "", true, null, out status);

    //gets users
    user1 = prov.GetUser("testUser1", false); //not checking if user is online. Argument should be false. Not yet implemented 
    user2 = prov.GetUser("testUser2", false);

    int pageSize = 5;
    int pageIndex = 0;
    int totalRecords = 2;

    MembershipUserCollection coll = prov.FindUsersByName("testUser1", pageIndex, pageSize, out totalRecords);

    Assert.IsTrue(coll.Count == 2);

    List<string> usernames = new List<string>();

    foreach (MembershipUser user in coll)
    {
        usernames.Add(user.UserName);
    }

    Assert.AreNotEqual(usernames, null);
    Assert.IsTrue(usernames.Contains("testUser"));

    //Deletes Users
    prov.DeleteUser("testUser1", true);
    prov.DeleteUser("testUser2", true);

    //Tries to get users again
    user1 = prov.GetUser("testUser1", false);
    user2 = prov.GetUser("testUser2", false);

    //test that no users are returned
    Assert.AreEqual(null, user1);
    Assert.AreEqual(null, user2);

    }
  1. prov.FindUsersByName("testUser1"... - shoud be "testUser"? prov.FindUsersByName(“ testUser1” ...-应该是“ testUser”吗?
  2. usernames.ToArray() == string[] {"testUser1", "testUser2"} - it doesn't contain "testUser" usernames.ToArray()== string [] {“ testUser1”,“ testUser2”}-它不包含“ testUser”

Issue 1: You are looking for "testUser1" in a collection of two users. 问题1:您正在两个用户的集合中寻找“ testUser1”。 You get 1 and not 2 because there is only one user named "testUser1" 您得到1而不是2,因为只有一个名为“ testUser1”的用户

Issue 2: You are searching for "testUser" and not a partial. 问题2:您正在搜索“ testUser”,而不是局部的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM