Category: Software Architecture

Using H2 as in memory database for unit/component tests instead of MySQL

h2 database

So following my recent post regarding the creation of a component test framework – let’s take a closer look in the use case of using H2 as a lightweight in memory database instead of MySQL, for your unit/component tests. Benefits of using H2 instead of MySQL It makes a lot of sense to use H2 in the context of component tests instead of MySQL: You can create and destroy a DB/table/data on the fly – once the tests are done the DB disappears. Compare this to having to rollback manually every change …

Creating a component test framework

component tests

If you have been reading Martin Fowler’s canonical article on the test pyramid, you know that there is a mystical layer that hides between those braod unit tests (the base of the pyramid) and the integration tests layer (near the top). This layer is called: component tests. This article is about the following : What are component tests? Why should you care, and how to implement them properly? What are component tests and why should you care? Basically component tests are the the part that theoretically should allow you to isolate a …

Creating a readable REST API


When you are creating a RESTful API, it’s easy to get overwhelmed by all the different things you need to take into consideration. Throttling, REST verbs, security, authentication, input validation and etc. It’s easy to forget about the more subtle issues that can make a lot of difference in the long run. Most of the topics described above were already discussed (extensively if not exhaustively) elsewhere, so I’ll try to give my take on how to create a readable REST API for developers to consume. It’s a more subtle and less discussed …