my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Using Maven Failsafe With Spring Boot

Maven Failsafe is a Maven plugin designed to be used in conjunction with the Maven Surefire Plugin. While the former plugin is intended for running integration tests the latter's purpose is to run unit tests. These plugins are tremendously useful for partitioning tests in Maven-based Java applications in order to make tests and builds run faster. When recently using Maven Failsafe with a Spring Boot application, though, I encountered a somewhat gnarly problem. Running mvn verify caused this error for all of the ... Read more

Testing Spring Boot Applications Masterclass by Philip Riecks

From crafting new software to refactoring existing applications automated testing is an essential part of professional software development and pivotal to high quality software. Philip Riecks (one of the other authors of our upcoming eBook Stratospheric - From Zero to Production with Spring Boot and AWS) offers the - aptly named - Testing Spring Boot Applications Masterclass, a comprehensive, in-depth online course on testing Spring Boot Applications. Currently (as of September 2020), the course consists of more than 90 videos (six hours in ... Read more

Kent Beck’s Novel Approach to Software Quality: test && commit || revert

In a Hanselminutes episode from December last year I heard preeminent programmer and agile advocate Kent Beck talk about his intriguing approach to creating working, high-quality code. In line with the steps this approach involves he calls it test && commit || revert. In lieu of the TDD circle of life (write test - test fails - write code - test passes - refactor - test fails ...) test && commit || revert has you commit each time when after a code ... Read more

Dependency Management for Angular Unit Tests Using TestModuleMetadata

Since its inception it's always been one of the eminent design goals of Angular (and AngularJS before it) to make JavaScript applications easily testable and bake unit and E2E testing right into the development process. While the Angular team certainly has succeeded at this there's still the occasional snag you hit when writing unit or end-to-end tests. For the most part, the testing experience with Angular is terrific and testing JavaScript codebases has come a long way but of course there's always ... Read more

Mockito 2 now available

Last week version 2.1.0 of the Mockito testing framework for Java has been released. For more information on this latest iteration check out this page. As the name suggests, Mockito allows you to mock object behaviour during unit tests. When writing unit tests you only want to test a particular unit's behaviour (hence the name). Depending on the programming language used such a unit might be a function, a procedure or - most commonly in today's object-oriented programming environments - a ... Read more

Varying Degrees Of Software Quality And What To Do About It

When working on client projects I come across copious amounts of source code, which sometimes is very well-maintained, sometimes less so. The various code bases are as diverse as their owners and respective stakeholders: A few come with an inherent sense of quality, lots of unit tests serving as the specification for the product. They're typically delightful to maintain and extend. Some though at times leave the impression of having been cobbled together in a rather haphazard, impromptu manner in order to solve ... Read more

Advice On Improving JavaScript Test Speed (by Shyp Engineering)

On their blog engineers of logistics service Shyp talk about how they improved the turn-around times of their JavaScript test suite by an order of magnitude of 3 (i.e. 1000x), which is no small achievement. In a modern software development process continuous integration and continuous deployment play a vital role. These ensure that your software always is in an deliverable, tested state and ideally is deployed to production systems in a timely manner when a change has been made. This process requires ... Read more