views:

91

answers:

2

My company is looking to standardize on an Isolation Framework. I was looking at MS Stubs (cause Moles seemed cool and I thought I would keep it in the same framework). However, Stubs is not quite ready for prime time yet (it is still a bit buggy in normal functionality).

So now I am looking at what else is out there. I have looked at Moq and Rhino mocks. While doing that, I came across the fabulous comparisons done by Richard Banks. In that he shows NSubstitute. I really like what I see there.

However, after having been burned a bit by MS Stubs, I don't want to bet on an alpha/non-production ready Isolation Framework.

So, is NSubstitute ready for prime time? Or is it still a bit buggy?

+6  A: 

There is a discussion about this on the official NSubstitute group.

The alpha tag was originally used to indicate that the API was still subject to change. The API has now stabilised, and most of the outstanding work for a 1.0 release is documentation. You can get an indication of some other planned work (for both v1 and v2; mostly planned features) from the issue log.

We have been using NSubstitute on a major project with a team of 6 developers and are very happy with it.

Note: I work on NSubstitute, so may be a tad biased. :)

UPDATE: First beta of NSubstitute has been released.

David Tchepak
Sweet! I am very happy to hear that it is in beta now. I am going to be training my company on unit testing next week, so having it exit alpha now is perfect timing!
Vaccano
+2  A: 

I've been using NSubstitute on my project and I haven't had any problems. I picked NSubstitue mainly just to try it out, because I like the syntax and how easy it is to fake an implementation due to it being loose. Since I wasn't sure if I would keep using it at the time, I put a little wrapper around it for my own little DSL, whenever I need a fake.

Also to note, I mainly develop C# on Linux with Ubuntu, Mono, and MonoDevelop and I haven't had any problems with it working under the Mono 2.6.7 runtime. You can probably use any of the 2.6.* runtimes, but I haven't tried it. The Mono 2.6.* runtime is equivalent to the .NET 3.5 Framework.

It's everything they were hoping, with their phrase from the website: It's meant to be simple, succinct and pleasant to use.

Dale Ragan
Thank you for your input on how well it works with your projects.
Vaccano