Building Maintainable Software, C# Edition
by Joost Visser, Sylvan Rigal, Gijs Wijnholds, Pascal van Eck, Rob van der Leek
Chapter 10. Automate Tests
Keep the bar green to keep the code clean.
The jUnit motto
Guideline:
-
Automate tests for your codebase.
-
Do this by writing automated tests using a test framework.
-
This improves maintainability because automated testing makes development predictable and less risky.
In Chapter 4, we have presented IsValid, a method to check whether bank account numbers comply with a checksum. That method contains a small algorithm that implements the checksum. It is easy to make mistakes in a method like this. That is why probably every programmer in the world at some point has written a little, one-off program to test the behavior of such a method, like so:
using System;
using eu.sig.training.ch04.v1;
namespace eu.sig.training.ch10
{
public class Program
{
[STAThread]
public static void Main(string[] args)
{
string acct;
do
{
Console.WriteLine("Type a bank account number on the next line.");
acct = Console.ReadLine();
Console.WriteLine($"Bank account number '{acct}' is" +
(Accounts.IsValid(acct) ? "" : " not") + " valid.");
} while (!String.IsNullOrEmpty(acct));
}
}
}
This is a C# class with a Main method, so it can be run from the command line:
C:\> Program.exe Type a bank account number on the next line. 123456789 Bank account number '123456789' is valid. Type a bank account number on the next line. 123456788 Bank account number '123456788' is not valid. C:\>
A program like this can be called a manual unit test. It is a unit test because it is used to test ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access