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
。您需要使用Be
或Equal
例如
results.Results.Count.Should().Be(1);
【讨论】:
以上是关于FluentAssertions:int.Should().Equals 返回错误的结果?的主要内容,如果未能解决你的问题,请参考以下文章
FluentAssertions 是不是支持字典的 WithStrictOrdering?
Fluentassertions.ShouldBeEquivalentTo 中的 Ignoredatamember
FluentAssertions:int.Should().Equals 返回错误的结果?
使用 FluentAssertions API 4.x 语法迁移 xunit 项目以使用 FluentAssertions v5.x 版本运行