2013-04-01 36 views
11

我正在爲我當前的項目進行單元測試,並遇到一些奇怪的事情。 .Net UnitTesting庫有Assert.Equals和Assert.AreEqual。 Assert.Equals的remarks表示使用Assert.AreEqual比較兩個對象,但沒有理由說明爲什麼要通過Assert.Equals進行比較。有人可以解釋什麼時候應該在單元測試中使用Assert.Equals,以及Assert.Equals和Assert.AreEqual之間的區別?Assert.Equals的用法是什麼?

+1

[爲什麼Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Equals()存在?](http://stackoverflow.com/questions/489117/why-does-microsoft-visualstudio-testtools-unittesting- assert-equals-exist) –

+1

你首先明白'Assert.Equals'的作用或意義。它會檢查以確保2個'對象是否等於'?'如果你使用諸如'DateTime,int'之類的東西並且嘗試設置類似'var myInt = null'的東西,則使對象爲'Nullable';它會失敗,但設置'var myInt? = null;'會使整數爲空,這應該導致你回答你自己的問題 – MethodMan

+0

更重要我認爲你應該問什麼時候使用'.Equals'與'=='有區別..一個檢查'對象',而其他檢查'價值' – MethodMan

回答

31

Assert.Equals只是從object繼承的Equals方法。它與單元測試無關,實際上沒有用處。


爲了更精確,Assert.Equals是完全一樣Object.EqualsObject.Equals有用。

但是,如果您使用的是Assert.Equals,那麼您可能會將其與Assert.AreEqual混淆,並且您想停止使用它。

+3

「與單元測試無關」 - 罰款......但「實際上,沒有用處」可能是誤導性的。 –

+2

它有什麼用處?比較'Assert'類的實例? –

+0

我會認爲它在靜態的Assert類中沒有用處。 –