Welcome to IslandUnit!

Project Description
IslandUnit helps you isolate the dependencies of your system with an fluent interface that makes easier to produce mocks and stubs and put the isolated dependencies in IoC containers, leaving your system highly testable.

Why this name?
Think about an desert island... Can you imagine something more isolated than that?
From book Pragmatic Unit Testing (http://www.amazon.com/Pragmatic-Unit-Testing-NUnit-2nd/dp/0977616673):

"John Donne may have been right about people, but not about unit tests: every test should be an ISLAND"

Latest Release and Samples: IslandUnit Beta

What IslandUnit is not?
  • IslandUnit isn't a mocking framework, like Moq, NMock, Rhino Mocks, TypeMock, EasyMock.Net, etc...
  • IslandUnit isn't a data builder framework like NBuilder, AutoPoco, etc...
  • IslandUnit isn't a data IoC (Inversion of Control) container like Ninject, StructureMap, Castle Windsor, AutoFac, Unity, etc...
  • IslandUnit isn't a unit test framework like MSTest, NUnit, MbUnit, csUnit, xUnit.net, etc...
See what frameworks we already support

So, what IslandUnit is?
IslandUnit provides an fluent interface that makes easier to use this types of frameworks:
  • It uses internally the Moq mocking framework, so you don't have to learn Moq;
  • It uses internally the NBuilder data builder framework, so you don't have to learn NBuilder;
  • You can use the IoC container of your preference;
  • And you can use it in any unit test framework!

Ok, but why i have to use all these "things"?
From Endo-Testing: Unit Testing with Mock Objects (http://connextra.com/aboutUs/mockobjects.pdf):

"Unit testing is a fundamental practice in Extreme Programming, but most non-trivial code is difficult to test in isolation. It is hard to avoid writing test suites that are complex, incomplete, and difficult to maintain and interpret. Using Mock Objects for unit testing improves both domain code and test suites. They allow unit tests to be written for everything, simplify test structure, and avoid polluting domain code with testing infrastructure."

And from Wikipedia (http://en.wikipedia.org/wiki/Unit_testing):

"To fully realize the effect of isolation while using an automated approach, the unit or code body under test is executed within a framework outside of its natural environment. In other words, it is executed outside of the product or calling context for which it was originally created. Testing in such an isolated manner reveals unnecessary dependencies between the code being tested and other units or data spaces in the product. These dependencies can then be eliminated."

So, we use these frameworks (Mock's, Data Builder's and IoC containers) to isolate dependencies in our SUT's (System Under Test).

No more theory, please, show me code.
Quick Start Guide
What frameworks we already support

Last edited May 21, 2011 at 3:27 PM by andborges, version 15