How to Test Abstract Classes

Abstract classes typically offer one or more concrete methods. These must be tested as well. There are several ways how to do it, but which one to choose?

Keep Test Code inside the Test

Noone wants to write one thing twice. Reducing duplicates makes code shorter and clearer. How much this applies for test code?

Don't Share Data among Threads

How to proceed when shared data are needed?

No Binaries in the Codebase

Binary data shouldn't be a part of the codebase. This is pretty well-known practice. But how to proceed when we do need binaries in our codebase, for instance as test data?

Double Testing

Write your tests once and run them twice - as both unit and integration tests - sounds like a good deal, let's take a look at this practice.

Glass-Box Testing Does Not Need Mocking

Black-box testing is testing of a component via its API without any knowledge of its implementation details. As the opposite there is the white-box testing. And it about testing implementation, right? Well, no...

Dealing with an Exception Is One Thing

Nothing new, but I keep seeing violating of this rule again and again. Let's explain why it is bad.

Transducers Compose Top-to-Bottom

Let's code some transducers and take a deeper look at how they work under the hood to see differences from pipes.

JavaScript async/await in a Loop

Async/await syntax is a great technique how to deal with promises in modern JavaScript. Unfortunately it's not always easy to understand how it works which can lead to strange bugs. Let's investigate one of them.

Pitfalls of Processing a Stream from an External Program

How to design a standalone program that produces a big amount of binary data, and what are the pitfalls of the approach?