FluentAssertions:int.Should().Equals 返回错误的结果?

Posted

技术标签:

【中文标题】FluentAssertions:int.Should().Equals 返回错误的结果?【英文标题】:FluentAssertions: int.Should().Equals returns wrong result? 【发布时间】:2016-10-17 05:16:09 【问题描述】:

我刚开始使用 Moq & FluentAssertions 并发现:

results.Results.Count.Should().Equals(1);

在代码中,results.Results 返回一个列表类List。在测试设置中,我将其设置为 results.Results.Count = 3 (我可以看到这个 # 在调试中也是正确的)。但不知何故,上面的 .Equals 测试通过了。然后我把它改成

results.Results.Count.Should().Equals("1");

还是过去了。如果我使用它会失败

results.Results.Count.ShouldBeEquivalentTo(1);

所以,问题是:

什么 results.Results.Count.Should().Equals("1") 比较?为什么它通过了?

谢谢

【问题讨论】:

我不认为.Should()Moq 的一部分。编辑:是的,我找不到它in the documentation 谢谢。改了。 【参考方案1】:
results.Results.Count.Should().Equals(1);

正在调用从Object 继承的Equals 方法,该方法由Should() 返回的对象返回一个被忽略的bool。您需要使用BeEqual 例如

results.Results.Count.Should().Be(1);

【讨论】:

以上是关于FluentAssertions:int.Should().Equals 返回错误的结果?的主要内容,如果未能解决你的问题,请参考以下文章

FluentAssertions 是不是支持字典的 WithStrictOrdering?

FluentAssertions 不应该包含失败

Fluentassertions.ShouldBeEquivalentTo 中的 Ignoredatamember

FluentAssertions:int.Should().Equals 返回错误的结果?

使用 FluentAssertions API 4.x 语法迁移 xunit 项目以使用 FluentAssertions v5.x 版本运行

FluentAssertions 断言单个对象的多个属性