I use FluentAssertions for all of my asserting needs. I like it’s API better than the assert methods you get with the .Net framework, and the FluentAssertions library provides an overall more fully featured set of assertion options. It’s open-source and continually updated, too, which makes it all right in my book. Sometimes, though, while I’m furiously writing tests, I get this test failure signature and it catches me off guard.
Subject has property Subject that the other object does not have.
Here’s a sample NUnit test case that would cause this particular error.
internal class MistakesTests { [Test] public void ThisDumbThingIKeepDoing() { var thing = new Thing { FirstName = "Nelson" }; var thing2 = new Thing { FirstName = "Nelson" }; // This should definitely pass, right? thing.Should().ShouldBeEquivalentTo(thing2); } private class Thing { public string FirstName { get; set; } } }
As you can see, I’m just doing a very simple object graph comparison, but it isn’t working as I intended. Can you spot the error?
Whereas I should be calling ShouldBeEquivalentTo on my Thing instance, I’m actually calling it on an instance of ObjectAssertions type from the FluentAssertions library. Whoops! ?
Recent Comments