Ho iniziato a utilizzare TDD per la prima volta su un progetto che ho avviato di recente.
Ho alcuni oggetti con dipendenze e strutture che assomigliano a questo:
public class MyClass
{
private readonly IDependency1 _dependency1;
private readonly IDependency2 _dependency2;
public MyClass(IDependency1 d1, IDependency2 d2)
{
_dependency1 = d1;
_dependency2 = d2;
}
public MyClass()
{
_dependency1 = new Dependency1();
_dependency2 = new Dependency2();
}
}
Per i test io uso gli oggetti Mock per le dipendenze ma nell'implementazione a volte permetto al costruttore di creare nuovamente un oggetto concreto.
Sembra che io stia barando, ma non sono sicuro del motivo per cui è sbagliato nella pratica.
Questa è considerata una cattiva pratica? Se è così, perché?