46

这两者之间有什么区别吗?

4

2 回答 2

54

没有不同。自 v2.5 起添加了Assert.True()其他(不带)。Is

来自版本的文档2.5:(nunit v2.5

为 True、False、Null 和 NotNull 条件提供了两种形式。“Is”形式与早期版本的 NUnit 框架兼容,而那些没有“Is”的形式是为了与 NUnitLite 兼容而提供的

顺便说一句,反汇编的 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);
}
于 2012-09-10T13:26:01.100 回答
15

似乎没有任何实现差异。在此处查看最新版本的源代码,当参数列表相同时TrueIsTrueThat都以相同的方式实现:

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);
}

重载方法的实现方式类似。

于 2012-09-10T13:24:33.343 回答