DbFit
|
DbFit is a set of FIT fixtures which enables FIT/FitNesse tests to execute directly against a database. This enables developers to manipulate database objects in a relational tabular form, making database testing and management much easier then with xUnit-style tools. The library is free to use, released under GNU GPL. Test-driven database development.
DbFit Features:
1. Regression testing for queries and SQL statements
2. Functional testing for stored procedures and functions
3. Automatic transaction control and various short-cuts to make writing test scripts easier and more efficient
4. Support for DB2, Oracle, SQL Server (java and .net versions), MySql 5 and Derby (only java)
After introducing FitNesse into a big .NET project, I found that we were still lacking test-coverage for a lot of DB (legacy) code, and that DB developers have a long feedback loop, so they were not really benefiting from TDD. FitNesse was a good solution because it enabled DB developers to write functional tests much easier than in pl/sql based unit testing libraries, and without getting Java developers involved to write those as JUnit tests. Although FitNesse is typically used for acceptance tests, the combination of FitNesse+DbFit filled the testing gap for our DB code with excellent results. In fact, as the natural DB interface is relational, FitNesse tables allow writing database tests much more efficiently than using function-centered unit testing libraries. For a more detailed view into the background of DbFit, see Fighting the Monster presentation from XPDay 07 in London.
Project goals:
1. Enable managing database state from FitNesse as an utility for integration tests involving databases, by .Net and Java developers
2. Enable the use of FitNesse for effective database acceptance and unit testing by DB developers (with no .Net/Java knowledge
The first group mainly needs reusable fixtures which they can use, either directly on the page or embedded in their project-specific fixtures, and will not mind digging into a bit of Java/.Net code. But the other group must not be made to wait for Java/.Net developers to do effective TDD.
So the project is taking a dual approach - developing test fixtures which will be reusable and extendable, but also developing one arch-test fixture which can control the connection, transactions and test flow in a fitlibrary flow mode. So Java/.Net developers can utilise the fixtures directly, and DB developers will be able to utilise the test fixtures through the over-arching fixture control.
The license of this software is Free, you can free download and free use this database management software.