Skip navigation

How to write Evil, Unstable code

How to write evil code? It’s easy, follow the guidelines. :)
Conditional Slalom - Always, always, feel good when writing lengthy if branches and switch statements. These increase the number of possible execution paths that tests will need to cover when exercising the code under test. The higher the Cyclomatic complexity, the harder it is to test! When someone suggests to [...]

DbAssert goes open-source

Some time ago I was working (in my spare time) on database testing tools. You could see posts about asserting data, putting the datastore to a known state and about mocking it up. I started working on it because I didn’t really like what dbUnit offered at that moment. I wanted my tests to be [...]

Database testing – putting everything together

Create – database instance is not necessary
Prepare – clean tables, load data to datasource
Assert – verify your datasource contains expected data

@Test
public void testGetCustomerFromDao()
{
//business dao object
final CustomerDao customerDao = new CustomerDao();

// initialize DbAssert
final DbAssert dbAssert = DbAssert.init(”org/testfw/TestSource.xml”);

// create a “fake” datasource. Stanalone instance of HSQLDB will be created (no database required).
final DbSource myTestSource = dbAssert.fake_source(”testSrc”,”org/testfw/testSourceSchema.sql”, getClass());

// [...]

More about database testing

Following up on DbAssert I’ve made a few changes to it. They are really minor ones.

Ability to add additional conditions like this:

dbAssert.condition(”id”, 1).addCondition(”name”, “John Doe”);

Another change which brings more real functionality is:

// checks if count of the records returned equals given value
dbAssert.assert_count(0);

So we’ve all here been using DbAssert for two months already and I think [...]