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

FluentAssertions: int.Should().Equals returns wrong result?

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

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

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

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

还是过去了。如果我使用

它将失败
results.Results.Count.ShouldBeEquivalentTo(1);

所以,问题是:

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

谢谢

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

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

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