【问题标题】:Does NUnit support Nullables?NUnit 是否支持 Nullables?
【发布时间】:2016-11-24 14:08:20
【问题描述】:

我正在测试一种将值从一个对象映射到另一个对象的方法。 然而,当涉及到 nullables 时,更准确地说,bool? 每次函数返回布尔值时都会变为 null。

例子:

我想测试一下这个方法:

public Family CreateFamily(Family a, Father b)
{
    // some property mapping here
    IsEnable = true; // where IsEnable is a nullable boolean
}

现在这个方法是这样使用的:

family x = CreateFamily(para1,para2);


//the unit test is:
x.IsEnable.Should.BeTrue(); // but null was returned

但是当我不使用 NUNIT TestRunner 时,条件满足

【问题讨论】:

  • 你在这里没有给我们足够的信息。请提供minimal reproducible example,以便我们准确地显示您在做什么。
  • @JonSkeet 我想对一个映射几个可为空类型的方法进行单元测试
  • @DanWilson 谢谢.. 我在想也许这就是问题...
  • 当然。因此,请显示一个 minimal reproducible example 来证明您遇到的问题。

标签: c# .net unit-testing nunit


【解决方案1】:

我相信您应该问的是Shouldly assertion framework 是否处理 Nullables,因为这看起来像您用于断言的内容。我的猜测是没有。

不过,您询问了 NUnit。最新版本的 NUnit 确实支持一些可空值。例如,以下所有测试都在 NUnit 3.5 中通过,

[Test]
public void TestNullableBooleanTrue()
{
    bool? b = true;
    Assert.That(b, Is.True);
}

[Test]
public void TestNullableBooleanFalse()
{
    bool? b = false;
    Assert.That(b, Is.False);
}

[Test]
public void TestNullableBooleanNull()
{
    bool? b = null;
    Assert.That(b, Is.Null);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    相关资源
    最近更新 更多