【问题标题】:fluentassertions C# I Don't understand Should().NotBeNull()fluentassertions C# 我不明白 Should().NotBeNull()
【发布时间】:2018-08-03 14:34:33
【问题描述】:

我已经阅读了fluentassertions.com,但仍然对如果 var 为 null 或不为 null 会发生什么感到困惑。

例如,如果你有

object someitem = null;

然后有

someitem.Should().NotBeNull(); 

如果它为空会发生什么?这个例子与我正在审查的另一个编码器的代码几乎相同。对我来说,Should().NotBeNull() 似乎应该返回一个布尔值,但我在我查看过的任何文档中都没有看到。如果它只是返回一个布尔值,我不明白为什么代码 someitem.Should().NotBeNull();将完全由它自己。

我知道有些人可能会说运行代码并设置断点以查看它在做什么。不幸的是,由于没有开发数据库设置并且无法直接访问实时数据库,我无法从我的盒子中运行代码。所以运行代码对我没有任何帮助。

【问题讨论】:

  • 这是一个assertion。它会检查一些期望,并在它们不满足时抛出异常。
  • 为什么需要一些开发数据库设置来查看它是如何工作的?只需执行string s = null; s.Should().BeNotNull() 看看会发生什么。
  • 您是否无权访问数据库与您的问题完全无关。您可以在没有数据库的情况下测试Should().NotBeNull() 的行为。
  • 断言如果不为真,通常会抛出异常,或者继续下一行而没有任何返回值。
  • 您需要询问编写实时代码的人。不是我们。不是我们写的。

标签: c# fluent-assertions


【解决方案1】:

如果someItem 为null,则会抛出异常,否则它将通过断言并且测试将成功。

您可以在Execution文件夹中查看每个测试框架是如何抛出异常的 https://github.com/fluentassertions/fluentassertions/tree/master/Src/FluentAssertions/Execution

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 2013-04-15
    • 2021-11-15
    • 2021-09-02
    • 2018-08-09
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多