Nel mio precedente post ho rivolto la domanda su come testare la classe Alarm senza modificarla. Matteo Baglini ha provato a rispondere alle domande esprimendo qualche perplessità proprio sull'ultima. In effetti rispondere è meno banale di quello che sembra.
Riporto nuovamente la classe Alarm originale:
public class Alarm
{
private const double LowPressureTreshold = 17;
private const double HighPressureTreshold = 21;
Sensor _sensor = new Sensor();
bool _alarmOn = false;
private long _alarmCount = 0;
public void Check()
{
double psiPressureValue = _sensor.PopNextPressurePsiValue();
...
Il post di Luka Micro-esercizio di TDD mi fornisce l'occasione di parlare di un errore di design che vedo in molte codebase e che anche io soprattutto all'inizio commettevo.
Partiamo dalla classe Alarm dell'esempio:
public class Alarm
{
private const double LowPressureTreshold = 17;
private const double HighPressureTreshold = 21;
Sensor _sensor = new Sensor();
bool _alarmOn = false;
private long _alarmCount = 0;
public void Check()
{
double psiPressureValue = _sensor.PopNextPressurePsiValue();
if (psiPressureValue < LowPressureTreshold || HighPressureTreshold...