问题标签 [fluent-assertions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

c# - 如何在 Fluent Assertions 中指定用于检查字典的键和值比较器?

我刚刚开始使用 Fluent Assertions 4.1.1。看起来比较字典的代码是

但是如果我不想使用它们的 Equals() 实现,如何为键和值指定我自己的相等函数(比较器)?

对于集合,它似乎是:

我正在寻找它的IDictionary<K,V>IReadOnlyDictionary<K,V>等价物。

编辑:集合上的 Contain() 的相同问题。

0 投票
2 回答
5065 浏览

c# - 使用 `ShouldBeEquivalentTo`、`ShouldAllBeEquivalentTo` 和 `BeEquivalentTo`

我在单元测试中使用流利的断言,但是 , 和 的使用ShouldBeEquivalentTo尚不ShouldAllBeEquivalentTo清楚BeEquivalentTo

例如; 以下所有语句都通过,因此函数看起来是等效的。

为什么我应该使用一个而不是另一个?

0 投票
1 回答
312 浏览

c# - 与应该等效于相反

我正在用 c# 编写单元测试。 ShouldBeEquivalentTo对于积极的情况是有意义的,但对于消极的情况,你用什么>我没有找到类似的东西ShouldNotBeEquivalentTo

0 投票
4 回答
8813 浏览

c# - OR 条件的流利断言

我正在尝试为以下条件设置流利的断言。但是找不到带有表达式的方法或带有 Or() 的 ObjectAssertion。

我必须检查我的服务状态是否具有枚举值PendingActive

我想要类似的东西,

有人可以帮我实现这一目标。

FluentAssertions 版本:4.1.1(来自 Nuget 的最新版本)附加 4.1 FluentAssertions.Primitive 命名空间。

0 投票
1 回答
175 浏览

unit-testing - 在 ReSharper 测试运行程序中显示测试输出

将 ReSharper 的内置测试运行器与 FluentAssertions 一起使用时,测试失败将产生一条输出消息,您可以在测试中指定该消息。在某些情况下,让这个输出出现在通过的测试中仍然很有用,主要是为了帮助识别误报。

有没有办法通过通过测试来获得该输出?如果有帮助,我正在使用 XUnit.net 测试框架。

0 投票
2 回答
6147 浏览

c# - 在 .NET 的 Fluent 断言中检查 ShouldThrow Exception.Data

好的,我正在运行单元测试以查看 Exception.Data 属性是否包含针对特定命名键的特定值。

Exception.Data 是 IDictionary 类型。IDictionary 只有 2 个重载,我看不到验证字典中内容的方法。

我有以下引发异常的代码:

然后进行测试以尝试验证 MyKey1 = 212 和 MyKey2 = 2121:

我想测试数据是否包含值为 212 的 MyKey1 和值为 2121 的 MyKey2。

0 投票
1 回答
39641 浏览

c# - 如何使用 Fluent Assertions 在不等式测试中测试异常?

我正在尝试使用 C# 中的流利断言为大于覆盖的运算符编写单元测试。如果任何一个对象为空,则此类中的大于运算符应该引发异常。

通常在使用 Fluent Assertions 时,我会使用 lambda 表达式将方法放入操作中。然后我会运行该操作并使用action.ShouldThrow<Exception>. 但是,我不知道如何将运算符放入 lambda 表达式中。

为了一致性起见,我宁愿不使用 NUnit 的Assert.Throws()Throws约束或[ExpectedException]属性。

0 投票
2 回答
280 浏览

c# - 如何使用流利的断言报告对象的名称

我有一个测试可以检查我们网站上表格中的几个对象。测试是用 SpecFlow 和 C# 编写的

它看起来像这样:

我的“然后”步骤背后的代码类似于:

如果测试错误看起来像这样,那么问题就在我们的构建日志中:

正如您在上面看到的那样,很难区分它意味着哪个对象......当它说它期望它是 5.00 时有没有办法可以修改输出以说出以下内容:

0 投票
2 回答
969 浏览

fluent-assertions - 对类的多个属性执行断言

我从文档中知道我可以做到这一点......

有没有一种方法可以以类似的方式测试多个属性

如果可以在不必断言它们是“OfType”的情况下进行上述任一测试也是很好的,但我怀疑代码没有其他方法可以知道哪些属性可用。

0 投票
1 回答
324 浏览

c# - 为什么 nameof() 在 Linq 表达式中给出一个模棱两可的调用警告,但当我使用与字符串相同的值时却没有?

当我升级到 FluentAssertions 4.2.2 时,我收到了一个编译器警告。在下面的代码中,如果我调用EndsWith(nameof(x)),我会收到一个模棱两可的调用警告。相反,如果我定义var foo = nameof(x)并调用EndsWith(foo),它会干净地编译。代码在两种情况下都可以正常运行。

nameof()我的问题是为什么会发生这种情况,除了将结果存储在变量中之外,还有其他解决方法吗?