问题标签 [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 回答
958 浏览

.net - FluentAssertions 比较列表的内容而不是列表本身

我有两个具有一堆属性的对象(同一类的实例),其中一些是其他对象的列表。

我想使用FluentAssertions library比较这些,并确保它们具有相同的属性,所以我添加

但后来我得到一个错误

预期属性 cs 具有值 <C, C, C> 但发现 <C, C, C>

换句话说,当比较作为列表的属性时,它会执行引用等于,这在这种情况下显然会失败。

我如何告诉 FluentAssertions 断言列表中元素的属性是相等的,而不是列表本身?

0 投票
1 回答
3225 浏览

c# - FluentAssertions Should.Equal 在集合上,包含空值

当我尝试将两个集合与空值进行比较时,FluentAssertions 似乎因 NullReference 异常而失败

比较在没有空值的集合上按预期工作。

0 投票
2 回答
5870 浏览

c# - 如何使用流利的断言结合集合和属性断言?

我想“组合”Fluent Assertion 的集合断言和属性断言,例如,IEnumerable使用逐个属性(可能是“嵌套”)比较(即结构相等,用函数式语言用语)断言两个是成对相等的。

具体例子:

ToSelectListItems在这里,我编写了一个将 a 转换DictionaryIEnumerableof s的扩展方法SelectListItem(来自 ASP.NET MVC)。我想断言actual并且expected“结构上”相等,注意引用类型SelectListItem不会覆盖Equals 并因此默认使用引用相等。

更新

目前使用以下手动解决方案,仍然希望在 FluentAssertions 中内置更好的东西:

(注意:Zip这是我自己的IEnumerable扩展,Tuple.Create用作默认投影)

更新 2

这是两个最小的示例:

0 投票
1 回答
341 浏览

c# - 比较某些道具具有不同格式的对象

比较两个对象的所有属性的最佳方法是什么,其中一些对象具有不同的格式(例如DateTime,一种DateTime.ToString()格式,另一种格式的自定义格式)?

我可以通过使用 2 个断言来做到这一点:

我会考虑以下内容,但这不会编译,因为EqualTo<T>()它是无效的。

类型是:

0 投票
4 回答
1590 浏览

c# - FluentAssertion 无法比较可枚举的字符串

此代码工作正常

但是,这失败了

失败消息是:

'预期集合等于 {1},因为 2,但 {"1"、"2"、"3"} 包含 2 个项目太多。

这里有什么问题?为什么无法比较可枚举的字符串?

而且,当然,我的问题是 - 如何处理 foo() 中的案例?

0 投票
1 回答
2080 浏览

.net - FluentAssertions 基于反射的相等

我有一个简单的课程:

有没有办法在没有 Equal 方法实现的情况下断言这个类的两个实例是否相等(我猜反射在这里很适合)?我不想仅仅为了测试而实现 Equal)。

0 投票
1 回答
258 浏览

fluent-assertions - FluentAssertions 的最新 nuget 包缺少 System.Xml 参考

1.7 的 FluentAssertions nuget 包似乎缺少对 System.Xml 和 System.Xml.Linq 的引用

还有其他人遇到这个问题吗?

0 投票
4 回答
609 浏览

c# - 扩展方法重载选择

我有两种扩展方法:

现在我编写了一些使用它的代码:

仅当我明确指定 IEnumerable 类型时才选择第二个重载。有没有办法在两种情况下都选择第二个重载?

0 投票
4 回答
9393 浏览

c# - Fluent Assertions 能否对 IEnumerable 使用字符串不敏感的比较?

我有一对列表,我正在尝试使用 Fluent Assertions 进行比较。我可以轻松地编写比较代码,但我想使用 Fluent Assertions 以便我可以找到出现在测试失败消息中的原因。

到目前为止,我所看到的一切似乎都在使用默认的 Object.Equals 比较,它区分大小写。我似乎无法将 IComparer 传递给 Equal 或 Contains 方法,那么还有其他方法吗?

0 投票
1 回答
572 浏览

c# - 使用 FluentAssertions 将可空类型与其基础类型进行比较时,这是一个错误吗?

当我遇到一个测试失败时,我正在为实用程序库编写一些单元测试,该测试实际上通过了。这个问题与比较两个float变量有关,而不是比较一个变量float?和一个float变量。

我正在使用 NUnit (2.6.0.12051) 和 FluentAssertions (1.7.1) 的最新版本,下面是一段小代码,说明了这个问题:

正如您从我的评论中看到的那样,ABTestFloatEquality()都正确失败(只需注释掉第一个失败的测试即可进入第二个)。

然而TestNullableFloatEquality()D通过但C失败。我本来预计C也会在这里失败。顺便提一下,如果我使用 NUnit 添加断言:

那些按预期通过和失败。

所以,对于这个问题:这是 FluentAssertions 中的一个错误,还是我错过了可空比较方面的一些东西?