2017-08-17 46 views
0

在我的codedui測試方法中,我將輸出值與我的csv文件進行比較。基本上我使用計算器應用程序並選擇編程器模式選項。點擊一個按鈕(此處單擊按鈕8),並將輸出結果作爲Decimal,HexaDecimal,Binary和Octal值與我的結果(即從我的csv文件)進行比較。在比較結果時,我使用了Assert.AreEqual()方法。 下面是我的代碼片段:Assert.AreEqual失敗。預計:<‭8‬>。實際:<8>當運行我的Coded UI測試方法

try 
{ 
    Assert.AreEqual(TestContext.DataRow["Binary"].ToString().Split(' ')[1].Trim(), control.ToString().Split(' ')[1].Trim(), "Binary value matches with expected."); 
} 
catch (AssertFailedException err) 
{ 
    Console.WriteLine(err.Message); 
} 

然而,當我跑了TestMethod的,我測試過,並顯示如下消息:

Assert.AreEqual失敗。預計:< 1000>。實際:< 1000>。

我不知道爲什麼Asser.AreEqual失敗。

+0

這兩個值中是否有任何非打印字符?在assert-line上設置斷點,調試測試並檢查兩個值... –

+0

感謝Johan,我放了一個斷點,發現Assert.AreEqual只執行對象驗證。推薦https://msdn.microsoft.com/en-us/library/ms243486.aspx,並幫助我解決我遇到的問題。 –

回答

0

通過更改我的Assert.AreEqual(預期的,實際的,字符串)(其中預期和實際值是字符串爲Assert.AreEqual(字符串,字符串,布爾,字符串)overloadlist來解決此問題,它驗證兩個指定的字符串是否相等......,忽略大小寫或作爲指定未斷言失敗,如果它們不相等,如果斷言失敗顯示消息

我改變的代碼如下:

try 
{ 
    Assert.AreEqual(TestContext.DataRow["Binary"].ToString().Split(' ')[1].Trim(), control.ToString().Split(' ')[1].Trim(),true, "Actual Binary value does not match with expected."); 
} 
catch (AssertFailedException err) 
{ 
    Console.WriteLine(err.Message); 
} 

當我跑我測試方法它的工作原理我在下面的msdn網站上進一步說明: Assert.AreEqual MethodAssert.AreEqual Method (String, String, Boolean, String)

+0

只是爲了讓答案更明顯。你會介意調用'Assert.AreEqual'的ignore case選項來進行字符串比較嗎? –

相關問題