BooUnit
BooUnit is a DSL written using boo language (http://boo.codehaus.org/) around BizUnit to simplify generation of BizUnit test cases.
BizUnit (http://www.codeplex.com/bizunit) is a Framework for Automated Testing of Distributed Systems often used to test BizTalk Solutions.
Rationale
BizUnit is a test framework for distributed systems, it's particularly useful to test BizTalk solutions since it comes with a lot of
precooked BizTalk test steps.
Unfortunately, at lease IMHO, the design decision of using XML format to declare test cases make really difficult writing tests and managing them manually.
In particular, aside from difficulty in reading and writing directly XML code, a developer still have to define C# boilerplate code to instantiate and launch test cases and, since XML format is just text and not a real programming language, there's no way to add computations and logic directly in the test case aside from implement a custom step and invoking it from test case.
Using DSL capabilities of
Boo Language BooUnit hides BizUnit XML format behind a Boo dialect, this has several advantages:
- DSL Syntax is simpler to write and read than BizUnit XML counterpart.
- BooUnit tests are in fact boo code and therefore are complete programs, this means that a developer can add custom logic and computations directly in the test instead of simply invoking a sequence of BizUnit steps.
- Since Boo comes with an interpreter, there's no need to compile BooUnit tests, therefore, exactly as BizUnit tests, BooUnit tests are just text files but, differently from BizUnit, they're directly executables.
- BooUnit DSL hides boilerplate startup code, therefore BooUnit scripts can be written and launched, there's no need to compile C# code to startup tests.
Credits
Obviously BooUnit could not be realized without
Boo and
BizUnit therefore credits goes to
Kevin B. Smith for his great testing framework and
Rodrigo B. De Oliveira,
Marcus Griep and other terrific guys of Boo programming language for the jewel they're realizing.
If someone will ever find BooUnit useful it's just thanks to their work. I merely put the glue :)