Search The Blog
Latest Posts
Twitter: @RoyOsherove
About this site

TDD in .NET Online Course

TDD and BDD in Ruby Online Course



This site aims to connect all the dots of my online activities - from tools, books blogs and twitter accounts, to upcoming conferences, engagements and user group talks.

« Can’t attend my five day TDD master class? Buy & Watch it online, recorded live. | Main | My first talk in Norwegian - Beautiful Builds »

Tools And Frameworks for Unit Testing in .NET for 2013

in “Art of Unit Testing 2nd Edition” I am now at work on the tools and frameworks appendix. It currently includes the following sections:

•    Isolation frameworks

  • Moq
  • Rhino Mocks
  • Typemock Isolator
  •  NMock ?
  • NUnit.Mocks
  • Microsoft Fakes / Moles
  • NSubstitute
  • FakeItEasy
  • Foq (for F#)


•    Test frameworks

•    NUnit
•   MbUnit  ?
•    Gallio ?
•    xUnit
•    Pex

  • Test Helpers and Assertion APIS
    • FluentAssertions
    • Shouldly
    • SharpTestEx
    • AutoFixure
  • Continuous Testing
    • Mighty Moose
    • NCrunch
    • Typemock Isolator Test Runner

•    Dependency injection and IoC containers


Ioc Benchmark:

•    Database testing

•   DataRollback Attribute
•    Integration Testing with the DB

•    Web testing

•    Ivonna
•    Team System Web Test
•    NUnitAsp
•    Watir
•    WatiN
•    Selenium

•    UI testing

•    NUnitForms
•    Project White
•    Team System UI Tests

•    Thread-related testing

•   Typemock Racer
•    Microsoft CHESS
•    Osherove.ThreadTester

•    Acceptance testing
  • FitNesse
  • StoryTeller ?
  • Cucumber

BDD Styled Frameworks (used for unit level or acceptance testing)

  • specflow
  • specsharp
  • nspec
  • mSpec
  • TickSpec

Color Map:

  • Gray: Will be removed
  • GREEN: New
  • BLACK: Unchanged
  • ? : Not Sure

While I do have my own thoughts on which new tools, frameworks or sections can be added or removed from the old book, I would really like to hear from you what you think should be in these sections(or new sections), when talking about .NET, Java, C++

PrintView Printer Friendly Version

Reader Comments (18)

I miss and

March 16, 2013 | Unregistered CommenterDennis Doomen

I hope you include FakeItEasy in the isolation framework section.

March 16, 2013 | Unregistered CommenterEndy

You should definitely mention continuous testing frameworks, such as NCrunch and MightyMoose.
Also, perhaps mention a few test runners. The runner in the upcoming ReSharper 8 will contain a bunch of new features, such as ability to run tests with Alt-Enter, and the little check mark, telling if the tests pass or fail.

March 16, 2013 | Unregistered CommenterIgal Tabachnik

I'm missing nSubstitute, JustMock and MSTests.

March 16, 2013 | Unregistered CommenterRadoslav Cap

bdd: Machine specification?

March 16, 2013 | Unregistered CommenterTomek

At work we've recently started using FakeItEasy (after you mentioned it) and have been enjoying it. I'm surprised you didn't mention it or NSubstitute under Isolation Frameworks.

March 16, 2013 | Unregistered CommenterBlair Conrad

Hi Roy

Loved the book and can't wait to read the second version. I have loved using NSubtitute and FluentAssertions. I loved them so much that I created my own testing framework called System.Spec

Thought I would throw it out there :)


March 16, 2013 | Unregistered CommenterAlex Falkowski

I'd add NSubstitute to isolation frameworks.


March 16, 2013 | Unregistered CommenterDavid Gardiner

Test Frameworks:
* MSTest (Because sadly some Microsoft shops refuse to accepts it's limitations...)

Acceptance Testing:
* Approvals (

March 16, 2013 | Unregistered CommenterSteven Evans

- I think you should mention mbunit/gallio. You don't need to go in depth, just a paragraph or Terri to explain their relationship to each other as people find that confusing
-I would love to see a section on Mspec just because it does things differently
- the approvaltests assertion framework should be covered. I have turned on probably at least a dozen developers onto it. Again,it has a different approach that is useful in many situations.
- Jasmine/mocha/qunit for Javascript testing
- testrunners., resharper, chutzpah, vs extensions, gallio
- in that vein it would be nice to mention how phantomjs can be used for ui testing

Looking forward to this

March 16, 2013 | Unregistered CommenterGeorge Mauer

I'm biased, but I'd like to see mention of SpecsFor on the BDD-styled frameworks (and possibly under Test Helpers since it has some lots of generic helpers to help with common pain points), and SpecsFor.Mvc on the UI or Web testing. I'd also add ExpectedObjects under Test Helpers.

Concerning Selenium, you are going to focus specifically on Selenium Web Driver, right?

March 17, 2013 | Unregistered CommenterMatt

Did you consider mentioning dotCover and NCover and anything else in the infamous coverage world I don't know about? dotCover has the rumour it will include NCrunch functionality in 3.0 and I still did not get why I personally should spend 650 $ for NCover.

Also in my projects I recently started evaluating unit testing MSSQL T-SQL code. tSQLt and the tools of RedGate SQL Test seem to be the way. As few applications and projects in the MS domain are NoSQL or not DB based at all this might be something to consider to mention briefly even it is not .NET. There are other T-SQL testing frameworks (TSQLUnit, T.S.T., Slacker), but none I really found convincing or active.
On the other hand that would also asking for some JavaScript passages as so many applications have some test-worthy JS logic. Perhaps mentioning that there are frameworks and books on that would be cool for being complete while I completely see why it does not belong in your book with the .NET pov.

Still SQL Server with ASP.NET MVC and HTML/JS frontend is one of the most popular stacks I encounter these days.

Anyway, just some ideas I had... :)

Looking forward to Edition 2.

March 17, 2013 | Unregistered CommenterDaniel

Hello Roy.
Do you plan to include in your test frameworks list Visual Studio Unit Testing Framework?

March 17, 2013 | Unregistered CommenterMikola

Good list, but why remove MbUnit? I use it daily, and prefer it to NUnit.

March 18, 2013 | Unregistered CommenterChip Beauvais

mstest ommited on purpose?
Giles for continuous testing

March 18, 2013 | Unregistered Commenterrobi.y

I would add Telerik's JustMock to the Isolation frameworks section.

March 18, 2013 | Unregistered CommenterLuke Sigler

I mentioned it in a post on the manning forum, and I think it's worthwhile repeating here. Have you thought about touching (even briefly) on Mutatioon testing?

There isn't too much around at the moment, but its something that I'm quite encouraged by. One that I have used, NinjaTurtles, ( could be a valuable addition to this list.

March 20, 2013 | Unregistered CommenterJames Wiseman

On the database side I'd mention tsqlt it is sql server specific but a good enough tool that RedGate produced a GUI for it (for whatever that's worth).

April 3, 2013 | Unregistered CommenterChris

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Web Analytics