---
title: "The future of unit testing tools - MbUnit, NUnit, NMock and FIT"
url: "https://osherove.com/blog/2006/9/25/the-future-of-unit-testing-tools-mbunit-nunit-nmock-and-fit.md"
canonical: "https://osherove.com/blog/2006/9/25/the-future-of-unit-testing-tools-mbunit-nunit-nmock-and-fit.html"
published: "2006-09-25T10:27:50"
updated: "2006-09-25T10:27:50"
tags: ["Agile", "Agile Related", "Unit Testing"]
author: "Roy Osherove"
description: "After I posted that I still recommend NUnit over MbUnit , and reading Andrew's response regarding how it's unlikely that MbUnit will freeze anytime soon, I started thinking some more. What if MbUnit keeps going and…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# The future of unit testing tools - MbUnit, NUnit, NMock and FIT

By Roy Osherove September 25, 2006 In [Agile](https://osherove.com/blog/category/agile), [Agile Related](https://osherove.com/blog/category/agile-related), [Unit Testing](https://osherove.com/blog/category/unit-testing)

**Historical article** · Originally published September 25, 2006; technical details may be outdated.

After [I posted that I still recommend NUnit over MbUnit](http://weblogs.asp.net/rosherove/archive/2006/09/24/MbUnit-vs.-NUnit-Vs.-Team-System-Unit-Testing-_2D00_-Choosing-a-unit-test-framework.aspx), and reading [Andrew's response](http://weblogs.asp.net/astopford/archive/2006/09/25/Roy-on-MbUnit.aspx) regarding how it's unlikely that MbUnit will freeze anytime soon, I started thinking some more.

What _if_ MbUnit keeps going and becomes the de-facto standard?

If it's "freezability" is not an issue anymore, you're left to compare it by merits only to NUnit - which is interesting.

Currently, MbUnit surpasses NUnit in almost every facet: amount of features, types of attributes, ease of extensibility, amount of active contributors - almost everything.

**Why almost?**

- It doesn't have a mocking framework (NUnit.Mock)  - not such a big deal since most people will use a mature framework such as NMock.
- Documentation is abysmal at best (not even a cookbook that I know of, everything is on Peli's old blog)
- and the only other thing NUnit has over MbUnit for me right now is _simplicity_. It's simple and easy to use NUnit without too much to worry about when you first learn it.

I'm not really sure that's such a big deal as well. To get effective unit tests done you need to be more proficient in the unit testing tools out there, including knowing about mocking frameworks, database testing, TDD, naming standards, and obviously know all the possible attributes. You might even need to extend the test framework when you get down to testing your real code, so simplicity is not such a big matter to me and shouldn't be to most devs out there.

**So let's say that MbUnit becomes the de-facto standard out there.**

What happens to NUnit?  I'm not saying that's such a big problem if it fades away, but what happens to all the people who contributed to it? Should they join the MbUnit effort? **could** they?

How mature is the MbUnit framework to stand on its own? Could it be a standard until it has at least decent docs and a mocking story?

I think several things separate it today from getting there"

1. The user base is a tiny fraction of the NUnit user base
2. that's it.

Getting #1 is what it's all about, and to get there they need:

1. Better recognition form the online community ([This post](http://www.hanselman.com/blog/MbUnitUnitTestingOnCrack.aspx) is a good example, so is my own post here)
2. Better acceptance in "legit" docs such as MSDN, magazine prints etc
3. Usage of MbUnit in conferences and user groups
4. Support for running MbUnit tests inside NUnit (hard one! but possible)
5. When VS 2005 testing tools will support using any unit test framework underneath as part of the MSTest.exe runner.

Personally, I like it more and more, but I think the UI still has a ways to go before I can call it sable enough. Still, I mostly use TD.NET inside vs 2005, or even better I use Resharper's Unit Testing support in VS 2005.

I think the Agile world is maturing into a better, more condensed community which better understands and reflects the features of developers. Currently, I think the unit testing frameworks in .NET are some of the most powerful - even more than Java, which was there first.

**Interesting tidbit:** MbUnit seems to be the only framework that is actively using the notion of [Parameterized Unit Tests](http://research.microsoft.com/research/pubs/view.aspx?type=Technical%20Report&id=917) out of the box (no wonder that Peli, the original author who now works at Microsoft, is moving to that Microsoft research team!)

**Other unit test frameworks that might be the future:**

- [NSPec](http://nspec.tigris.org/) is a step into a specification directed testing (which really looks like the API on the asserts is very different, nothing more right now. Interesting when you consider [ruby into the mix](http://codebetter.com/blogs/scott.bellware/archive/2006/09/13/149173.aspx))
- Ruby seems to be a [good language for functional testing](http://www.hanselman.com/blog/IntegratingRubyAndWatirWithNUnit.aspx) with .NET as well.

**Mocking Frameworks**

The mocking frameworks are getting better and better too. Look at [ayende's RhinoMocks](http://www.ayende.com/projects/rhino-mocks.aspx) framework and tell me that' s not a possible future. Or [NMock 2](http://weblogs.asp.net/rosherove/commentrss.aspx?PostID=413577). Could those be the MbUnit Of the Mocking world? Maybe - but NMock 2 has been under construction for a year now, and RhinoMocks has but a fraction of the size of the MbUnit user base, if at all - again, recognition and the fact that only a single person is working on it.

**Acceptance Tests**

What about [Fit](http://fit.c2.com/) and [Fitness](http://fitnesse.org/)? It's going somewhere -slowly. I'd like to see better versions of both of these, since it's about time customer acceptance tests became a main player. Right now- it's nowhere near getting recognition.

## More in Agile

[All posts in Agile](https://osherove.com/blog/category/agile)

- Oct 2, 2006

    ### [My sessions at TechEd Europe 2006](https://osherove.com/blog/2006/10/2/my-sessions-at-teched-europe-2006.html)

- Sep 27, 2006

    ### [Using TypeMock vs. Design for testability](https://osherove.com/blog/2006/9/27/using-typemock-vs-design-for-testability.html)

- Sep 24, 2006

    ### [Continuous integration with Team System and Team Foundation Server](https://osherove.com/blog/2006/9/24/continuous-integration-with-team-system-and-team-foundation.html)

- Sep 23, 2006

    ### [MbUnit vs. NUnit Vs. Team System Unit Testing - Choosing a unit test framework](https://osherove.com/blog/2006/9/23/mbunit-vs-nunit-vs-team-system-unit-testing-choosing-a-unit.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
