FluentAssertion - 向 if 语句添加断言

Posted

技术标签:

【中文标题】FluentAssertion - 向 if 语句添加断言【英文标题】:FluentAssertion - Adding assertion to if statement 【发布时间】:2019-04-27 01:29:29 【问题描述】:

我有以下流利断言,我想将其放入 if 语句中。我收到一条错误消息,提示我无法将类型隐式转换为 bool。

我已尝试显式转换它,但我仍然收到一条错误消息,提示无法将类型转换为布尔值。

actors.Cast.Should().Contain(actor => actor.Name == "Emilia Clark");

检查上述陈述是否属实的最佳方法是什么?

【问题讨论】:

什么都不做。如果不是真的,测试将失败,因为它会抛出异常。 如果你在那里使用if - 你肯定做错了什么。 【参考方案1】:

检查上述陈述是否属实的最佳方法是什么?

什么都不做。

如果不正确,测试将失败,因为它会抛出异常。

//... Code before

//Assert
actors.Cast.Should().Contain(actor => actor.Name == "Emilia Clark");

//...if we reach this far it is true. Carry on.

//...other code

【讨论】:

【参考方案2】:

我假设“Cast”是一个 IEnumerable。您可以使用 Linq ".Any(...)"。

if (Cast.Any(actor => actor.Name == "Emilia Clark")) ...

【讨论】:

以上是关于FluentAssertion - 向 if 语句添加断言的主要内容,如果未能解决你的问题,请参考以下文章

检查 FluentAssertion 异常语法中的返回值

如何使用 FluentAssertion 编写 CustomAssertion?

如何创建自定义 FluentAssertion 错误消息?

使用 FluentAssertion 时 Visual Studio 警告 CA1806 的错误识别(不要忽略方法结果)

如何使用 FluentAssertion 测试一个对象是不是等同于另一个已设置属性 solidcolorbrush 的对象

如何向量化包含 if 语句的函数?