2013-05-08 96 views
-3

初级Web开发人员和我负责为项目创建单元测试。C#中的单元测试#

+6

你有什么问题吗? – pollirrata 2013-05-08 18:03:36

+2

您的测试不应该依赖于用户。你应该做一些嘲弄。 – Dilshod 2013-05-08 18:05:14

+0

将测试框架更改为支持测试用例的NUnit。然后为“test.user”,“Test.User”,“TEST.USER”等创建不同的情况,并使用StringAssert类进行验证,该类允许您检查与套管无关的字符串等价性。 – Mithon 2013-05-08 18:07:24

回答

0
[TestMethod] 
public void TestGetUser()//Shell Complete, test code needs review 
{ 
    try 
    { 
     //set test to get user 
     AsaMembershipProvider prov = this.GetMembershipProvider(); 
     //call get user 
     MembershipUser user = prov.GetUser("test.user", false); 



     //ask for the username with deliberate case differences 
     MembershipUser user2 = prov.GetUser("TeSt.UsEr", false); 


     //prove that you still get the user, 
     Assert.AreNotEqual(null, user); 
     Assert.AreNotEqual(null, user2); 

     //test by using the “.ToLower()” function on the resulting string. 
     //verify case doesn’t matter on username. 
     Assert.AreEqual(user.UserName.ToLower(), user2.UserName.ToLower()); 
     Assert.AreEqual(user.UserName.ToLower(), "test.user"); 
    } 
catch (Exception ex) 
    { 
     LogMessage(ex); 
     Assert.Fail(ex.Message); 
    } 
} 
+0

谢谢。那就是我正在寻找的东西。 – user216672 2013-05-08 18:58:35

0

据我所知,你要求检查你的代码是否符合要求? 我不知道你的用户和用户提供的,但你还需要

变化

Assert.AreEqual(user.UserName, "test.user"); 

Assert.AreEqual("test.user", user.UserName.ToLower()); //EXPECTED, then ACTUAL 

或更正确的方式做到这一点:

StringAssert.AreEqualIgnoringCase("test.user", user.UserName); 

此更改将满足您的原始要求:

//test by using the “.ToLower()” function on the resulting string. 
//verify case doesn’t matter on username. 

更多关于AreEqual

更多关于StringAssert

+0

谢谢你的帮助。 – user216672 2013-05-08 20:47:12