Reputation: 6605
I just start to use Moq & FluentAssertions and find this:
results.Results.Count.Should().Equals(1);
in the code, results.Results return a list of class List. In the test setup, I set it as results.Results.Count = 3 (I can see this # is correct in debug too). But somehow, the above .Equals test passed. Then I changed it to
results.Results.Count.Should().Equals("1");
It still passed. It will fail if I use
results.Results.Count.ShouldBeEquivalentTo(1);
So, the question is:
what results.Results.Count.Should().Equals("1") compare? why it passed?
Thanks
Upvotes: 7
Views: 9376
Reputation: 144136
results.Results.Count.Should().Equals(1);
is calling the Equals
method inherited from Object
on the object returned by Should()
which returns a bool
which is being ignored. You need to use Be
or Equal
e.g.
results.Results.Count.Should().Be(1);
Upvotes: 25