A while ago xUnit.NET came out, and I checked it out, decided that it didn't offer me anything really interesting, and moved on.
I was wrong. Or, to be rather exact, I didn't dug deep enough. xUnit.NET doesn't really offer something that we haven't seen elsewhere, but today I had the chance to do some work on the it a bit, and I found some interesting things.
I am not sure why xUnit.NET is using [Fact] instead of [Test], but aside from that, it is a really nice framework. Most significantly, I like the use of Assert.DoesNotThrows(delegate); It makes it very clear what is supposed to happen, instead of the more awkward syntax in other places.
What has sparked this post is that I wanted to have a parameterized test. Now, I know that xUnit.NET has this feature somewhere, but I decided to take a look inside (one of my standard procedures before I am using a library). What I found out was very pleasing.
In fact, I still don't know what the standard way to deal with that scenario in xUnit.NET (well, I know it is called [Theory], but I don't know the exact syntax). The reason that I don't know the exact syntax is very simple.
It was easier to write my own than to learn the official syntax. That is a rare pleasure.
I haven't actually looked at NUnit or MbUnit code, so I have no idea how they are looking, but it was a lot of fun trawling through xUnit.NET on reflector.