2012-09-10 28 views

回答

39

沒有區別。自v2.5以來,已添加Assert.True()和其他(不包括Is)。提供了真,假,空和NOTNULL 條件(nunit v2.5

兩種形式:

從文檔版本2.5。在「是」的形式與早期版本的 NUnit的框架的兼容,而那些沒有「就是」提供了 兼容NUnitLite

BTW,拆解nunit.framework.dll中(使用ILSPY)

public static void IsTrue(bool condition) 
{ 
    Assert.That(condition, Is.True, null, null); 
} 

public static void True(bool condition) 
{ 
    Assert.That(condition, Is.True, null, null); 
} 
+0

用戶是否有任何使用偏好?還是有一個「應該」使用? – dmeehan

+1

根據下一個答案,這三個實現是完全相同的,都依賴於Assert.That() 所以最好的將直接使用Assert.That()... sll的答案(在這裏,在這文章)是從NUnit網站複製的:http://www.nunit.org/index.php?p=conditionAsserts&r=2.5在頁面底部。 除了THAT之外,無論如何都要儘量避免使用這三個並使用更好的斷言,正如RavenDB的Eyal Eini(Ayende)在這裏寫的:http://ayende.com/blog/4118/assert-true-is-the - 工具 - 的最後手段 – pashute

12

似乎沒有任何實施差異。縱觀最近一個版本hereTrueIsTrueThat以同樣的方式都執行源代碼時,參數列表是相同的:

public static void True(bool condition, string message, params object[] args) 
{ 
    Assert.That(condition, Is.True, message, args); 
} 
... 
public static void IsTrue(bool condition, string message, params object[] args) 
{ 
    Assert.That(condition, Is.True, message, args); 
} 
... 
static public void That(bool condition, string message, params object[] args) 
{ 
    Assert.That(condition, Is.True, message, args); 
} 

重載的方法類似實施。