问题标签 [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.
c# - 如何在 Fluent Assertions 中指定用于检查字典的键和值比较器?
我刚刚开始使用 Fluent Assertions 4.1.1。看起来比较字典的代码是
但是如果我不想使用它们的 Equals() 实现,如何为键和值指定我自己的相等函数(比较器)?
对于集合,它似乎是:
我正在寻找它的IDictionary<K,V>
和IReadOnlyDictionary<K,V>
等价物。
编辑:集合上的 Contain() 的相同问题。
c# - 使用 `ShouldBeEquivalentTo`、`ShouldAllBeEquivalentTo` 和 `BeEquivalentTo`
我在单元测试中使用流利的断言,但是 , 和 的使用ShouldBeEquivalentTo
尚不ShouldAllBeEquivalentTo
清楚BeEquivalentTo
。
例如; 以下所有语句都通过,因此函数看起来是等效的。
为什么我应该使用一个而不是另一个?
c# - 与应该等效于相反
我正在用 c# 编写单元测试。 ShouldBeEquivalentTo
对于积极的情况是有意义的,但对于消极的情况,你用什么>我没有找到类似的东西ShouldNotBeEquivalentTo
。
c# - OR 条件的流利断言
我正在尝试为以下条件设置流利的断言。但是找不到带有表达式的方法或带有 Or() 的 ObjectAssertion。
我必须检查我的服务状态是否具有枚举值Pending
或Active
我想要类似的东西,
有人可以帮我实现这一目标。
FluentAssertions 版本:4.1.1(来自 Nuget 的最新版本)附加 4.1 FluentAssertions.Primitive 命名空间。
unit-testing - 在 ReSharper 测试运行程序中显示测试输出
将 ReSharper 的内置测试运行器与 FluentAssertions 一起使用时,测试失败将产生一条输出消息,您可以在测试中指定该消息。在某些情况下,让这个输出出现在通过的测试中仍然很有用,主要是为了帮助识别误报。
有没有办法通过通过测试来获得该输出?如果有帮助,我正在使用 XUnit.net 测试框架。
c# - 在 .NET 的 Fluent 断言中检查 ShouldThrow Exception.Data
好的,我正在运行单元测试以查看 Exception.Data 属性是否包含针对特定命名键的特定值。
Exception.Data 是 IDictionary 类型。IDictionary 只有 2 个重载,我看不到验证字典中内容的方法。
我有以下引发异常的代码:
然后进行测试以尝试验证 MyKey1 = 212 和 MyKey2 = 2121:
我想测试数据是否包含值为 212 的 MyKey1 和值为 2121 的 MyKey2。
c# - 如何使用 Fluent Assertions 在不等式测试中测试异常?
我正在尝试使用 C# 中的流利断言为大于覆盖的运算符编写单元测试。如果任何一个对象为空,则此类中的大于运算符应该引发异常。
通常在使用 Fluent Assertions 时,我会使用 lambda 表达式将方法放入操作中。然后我会运行该操作并使用action.ShouldThrow<Exception>
. 但是,我不知道如何将运算符放入 lambda 表达式中。
为了一致性起见,我宁愿不使用 NUnit 的Assert.Throws()
、Throws
约束或[ExpectedException]
属性。
c# - 如何使用流利的断言报告对象的名称
我有一个测试可以检查我们网站上表格中的几个对象。测试是用 SpecFlow 和 C# 编写的
它看起来像这样:
我的“然后”步骤背后的代码类似于:
如果测试错误看起来像这样,那么问题就在我们的构建日志中:
正如您在上面看到的那样,很难区分它意味着哪个对象......当它说它期望它是 5.00 时有没有办法可以修改输出以说出以下内容:
fluent-assertions - 对类的多个属性执行断言
我从文档中知道我可以做到这一点......
有没有一种方法可以以类似的方式测试多个属性
如果可以在不必断言它们是“OfType”的情况下进行上述任一测试也是很好的,但我怀疑代码没有其他方法可以知道哪些属性可用。
c# - 为什么 nameof() 在 Linq 表达式中给出一个模棱两可的调用警告,但当我使用与字符串相同的值时却没有?
当我升级到 FluentAssertions 4.2.2 时,我收到了一个编译器警告。在下面的代码中,如果我调用EndsWith(nameof(x))
,我会收到一个模棱两可的调用警告。相反,如果我定义var foo = nameof(x)
并调用EndsWith(foo)
,它会干净地编译。代码在两种情况下都可以正常运行。
nameof()
我的问题是为什么会发生这种情况,除了将结果存储在变量中之外,还有其他解决方法吗?