2013-05-08 98 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