问题标签 [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.
fluent-assertions - FluentAssertions - 创建自定义断言的完整教程
有人看过使用 FluentAssertions 创建自定义断言类的完整教程吗?最好的祝福
c# - FluentAssertions 比较两个不同类型的列表
我想知道是否有办法比较两个不同类型的列表。我找到了这个方法:
我正在寻找类似的东西:
我试图做一个扩展方法,但方法AssertSubjectEquality是受保护的,不支持第二种类型。
c# - FluentAssertions:ShouldBeEquivalentTo vs Should().Be() vs Should().BeEquivalentTo()?
任何人都可以总结它们之间的差异和使用范围吗?
我读了SO文章,
- ShouldBeEquivalientTo():ShouldBeEquivalentTo() 旨在用于比较复杂的对象图,而不是 .NET 框架的原始类型部分。
- Should().BeEquivalentTo():单个项目 Equals() 实现以验证等效性,并且自版本 1 以来一直存在。FA 2.0 中引入的较新的 ShouldBeEquivalenTo() 正在进行深入的结构比较,并报告任何差异。
- should().Be():找不到。
以我的拙见,ShouldBeEquivalientTo()
和Should().BeEquivalentTo()
作品类似的话,如果Should().BeEquivalentTo()
做深入比较的话。
c# - FluentAssertions:排序列表的等价性
我试图在 C# 中使用 FluentAssertions 建立两个列表的等价性,其中有两件事很重要:
- 元素通过它们持有的值进行比较,而不是通过引用(即它们相等,不相等)
- 列表中元素的顺序很重要
FluentAssertions(甚至 NUnit)中没有这样做的功能吗?
干杯!
c# - fluentassertion 不会编译
我显然缺少一些组装或参考来完成这项工作,它可能是fluent assertions
,也可能是Microsoft.Team Foundation.Warehouse
。我都不确定如何使用/添加作为引用(我确定如何安装流利的断言,它什么也没做!)。
我在网上找到了下面的代码,我想使用它,但它缺少一些组件,而不是说这里是一个屏幕截图 - 我已经安装了流利的断言库以尝试编译(我相信“应该()" 是流利断言的组成部分)
它似乎对这两个关键字感到不安,这[Fact]
对Should()
某人来说是不是很容易获胜?
悬停消息说“System.Collections.Generic.List 不包含'Should'的定义,并且找不到接受System.Collections.Generic.List 类型的第一个参数的扩展方法'Should'(因为您缺少使用指令 ot 程序集引用?)”
c# - 比较具有不同项目类型的集合
我有两个具有不同项目类型的集合,例如:
是否可以使用我自己的相等比较器和 FluentAssertions断言具有不同项目类型的两个集合以任何顺序包含相等的项目?
FA 官方文档中最相关的示例认为这两个集合是同一类型:
在我的情况下使用这种方法的一种可能的解决方案是List<Type1>
根据来自的项目创建一个新集合collection2
并使用它而不是customers
在上面的示例中。
但有时这是不可能的,实际上闻起来像开销。
我想知道是否有一种类似的方法可以像上面那样使用 FA 优雅但适用于具有不同项目类型的集合?
更新 1(尝试使用@DennisDomen 建议):
让我们举一个更具体的例子。
假设我们有一个List<DateTime>
代表单月日期的期望值:
一个测试方法返回一个List<int>
天数:
我们要断言测试方法返回的天数集合与期望列表的 DateTime.Day 值组成的集合相同,即:
(但没有我没有在这个例子中演示的排序限制)。
我正在尝试以这种方式使用@DennisDoomen 建议:
问题是ctx.Expectation
这里是一种类型int
,而不是一种,所以我无论如何DateTime
都无法得到。DateTime.Day
我在这里想念什么?
fluent-assertions - 如何使用 Fluent Assertions 测试 XElement 的子元素的属性、值?
假设我有一个XElement
对象,它代表 Xml
如何测试<value>
元素的值是“更改名称”,<child>
元素具有属性id
“abc”,值“一些虚拟值”?
c# - 如果使用 Fluent Assertions 的顺序不同,如何断言两个列表不等价
使用Fluent Assertions,我们可以断言两个集合是相等的(就属性值而言),使用如下:
假设list1
和list2
包含相同的对象in any order
,则断言为真。
如果我们想断言列表的顺序是准确的,我们可以这样做:
如果列表中包含相同的对象,我正在寻找断言错误的东西,wrong order
但我找不到任何东西。
使用 Fluent 断言的最佳方法是什么?
PS - 这是一种学术好奇心,在现实中它甚至可能没有那么有用:)
entity-framework - FluentAssertions 图比较,ExcludingNestedObjects 被忽略?
我有一个单元/集成测试如下。
repository
引用是一个并且是一个DbContext
导航AcceptedAgreements
属性。
此测试失败并显示以下消息。
如果我修改断言如下:
现在测试通过了。
请帮助我理解为什么ExcludingNestedObjects()
不排除该Application
属性,它实际上是一个嵌套对象,我不得不单独排除每个导航属性。上面的代码稍微简化了,因为我实际上有多个导航属性,并且必须单独排除它们中的每一个。