问题标签 [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.
.net - FluentAssertions 比较列表的内容而不是列表本身
我有两个具有一堆属性的对象(同一类的实例),其中一些是其他对象的列表。
我想使用FluentAssertions library比较这些,并确保它们具有相同的属性,所以我添加
但后来我得到一个错误
预期属性 cs 具有值 <C, C, C> 但发现 <C, C, C>
换句话说,当比较作为列表的属性时,它会执行引用等于,这在这种情况下显然会失败。
我如何告诉 FluentAssertions 断言列表中元素的属性是相等的,而不是列表本身?
c# - FluentAssertions Should.Equal 在集合上,包含空值
当我尝试将两个集合与空值进行比较时,FluentAssertions 似乎因 NullReference 异常而失败
比较在没有空值的集合上按预期工作。
c# - 如何使用流利的断言结合集合和属性断言?
我想“组合”Fluent Assertion 的集合断言和属性断言,例如,IEnumerable
使用逐个属性(可能是“嵌套”)比较(即结构相等,用函数式语言用语)断言两个是成对相等的。
具体例子:
ToSelectListItems
在这里,我编写了一个将 a 转换Dictionary
为IEnumerable
of s的扩展方法SelectListItem
(来自 ASP.NET MVC)。我想断言actual
并且expected
“结构上”相等,注意引用类型SelectListItem
不会覆盖Equal
s 并因此默认使用引用相等。
更新
目前使用以下手动解决方案,仍然希望在 FluentAssertions 中内置更好的东西:
(注意:Zip
这是我自己的IEnumerable
扩展,Tuple.Create
用作默认投影)
更新 2
这是两个最小的示例:
c# - 比较某些道具具有不同格式的对象
比较两个对象的所有属性的最佳方法是什么,其中一些对象具有不同的格式(例如DateTime
,一种DateTime.ToString()
格式,另一种格式的自定义格式)?
我可以通过使用 2 个断言来做到这一点:
我会考虑以下内容,但这不会编译,因为EqualTo<T>()
它是无效的。
类型是:
c# - FluentAssertion 无法比较可枚举的字符串
此代码工作正常
但是,这失败了
失败消息是:
'预期集合等于 {1},因为 2,但 {"1"、"2"、"3"} 包含 2 个项目太多。
这里有什么问题?为什么无法比较可枚举的字符串?
而且,当然,我的问题是 - 如何处理 foo() 中的案例?
.net - FluentAssertions 基于反射的相等
我有一个简单的课程:
有没有办法在没有 Equal 方法实现的情况下断言这个类的两个实例是否相等(我猜反射在这里很适合)?我不想仅仅为了测试而实现 Equal)。
fluent-assertions - FluentAssertions 的最新 nuget 包缺少 System.Xml 参考
1.7 的 FluentAssertions nuget 包似乎缺少对 System.Xml 和 System.Xml.Linq 的引用
还有其他人遇到这个问题吗?
c# - 扩展方法重载选择
我有两种扩展方法:
现在我编写了一些使用它的代码:
仅当我明确指定 IEnumerable 类型时才选择第二个重载。有没有办法在两种情况下都选择第二个重载?
c# - Fluent Assertions 能否对 IEnumerable 使用字符串不敏感的比较?
我有一对列表,我正在尝试使用 Fluent Assertions 进行比较。我可以轻松地编写比较代码,但我想使用 Fluent Assertions 以便我可以找到出现在测试失败消息中的原因。
到目前为止,我所看到的一切似乎都在使用默认的 Object.Equals 比较,它区分大小写。我似乎无法将 IComparer 传递给 Equal 或 Contains 方法,那么还有其他方法吗?
c# - 使用 FluentAssertions 将可空类型与其基础类型进行比较时,这是一个错误吗?
当我遇到一个测试失败时,我正在为实用程序库编写一些单元测试,该测试实际上通过了。这个问题与比较两个float
变量有关,而不是比较一个变量float?
和一个float
变量。
我正在使用 NUnit (2.6.0.12051) 和 FluentAssertions (1.7.1) 的最新版本,下面是一段小代码,说明了这个问题:
正如您从我的评论中看到的那样,A和BTestFloatEquality()
都正确失败(只需注释掉第一个失败的测试即可进入第二个)。
然而TestNullableFloatEquality()
,D通过但C失败。我本来预计C也会在这里失败。顺便提一下,如果我使用 NUnit 添加断言:
那些按预期通过和失败。
所以,对于这个问题:这是 FluentAssertions 中的一个错误,还是我错过了可空比较方面的一些东西?