Test Automation Pyramid

Unit tests are a powerful and crucial part of programming. But it isn't enough if we want to know better if our code works. Complementing unit tests with service-level/integration and UI/end-to-end tests will make us know that our code really works. The test automation pyramid tells what is the good ratio between different tests.

Always Write Unit Tests

Unit tests are my passion. I always write them and I also encourage others to write them and even have taught developers to write unit tests. But I am quite surprised how often developers don't write unit tests. There is a lot of benefits for writing unit tests. In this blog post, I will explain three main reasons why every developer should always write unit tests.

Automatic Rollback to Integration Tests in C#

This is something that has made my integration tests better. You define a test method to run in transaction and rollback at the end of each test. This makes it possible to write integration tests that write to the database. And tests won't leave any "garbage" there because rollback at the end of the test undoes all database updates (and inserts and deletes). If this is possible in your language and testing framework I strongly recommend it. In this blog post I will explain how you can do it with NUnit in C#.