Safe Refactoring to Support Testing

So that we can begin to add support for multiple channels, let’s figure out where it might be useful to verify functionality in the open function.

Near its end appears a number of calculations—total seconds, how many samples to write, where to start, and so on. After all these calculations is a for loop that appears to write samples to an output file. (This chunk of code appears highlighted in the earlier listing of open.) We’ll need to change a calculation or two plus fix the loop in order to support multiple channels.

The most interesting piece of code is the loop. Let’s write tests around that...but how? We’d need to set up lots of information to get that far in the open function.

Instead, let’s isolate ...

Get Modern C++ Programming with Test-Driven Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.