Estoy tratando de aprender a implementar TDD con burlas / objetos falsos. Una de las preguntas que tengo es cómo inicializar una dependencia en una aplicación que implementa TDD. Un ejemplo de este artículo Beginning Mocking With Moq 3 muestra:
public class OrderWriter
{
private readonly IFileWriter fileWriter;
public OrderWriter(IFileWriter fileWriter)
{
this.fileWriter = fileWriter;
}
public void WriteOrder(Order order)
{
fileWriter.WriteLine(String.Format("{0},{1}", order.OrderId, order.OrderTotal));
}
}
En este ejemplo, el constructor toma un IFileWriter
parámetro, supongo que porque desea proporcionar el escritor de archivo real en el caso de la aplicación real, y el falso para la prueba unitaria. Mi pregunta es, en la aplicación real, ¿quién proporcionará este parámetro? Supongo que será la persona que llama de esta aplicación. ¿Qué pasa si también tiene dependencia en el constructor? ¿El código de la persona que llama también será responsable de eso?
Quizás la mejor manera es usar la fábrica. ¿Cómo funcionaría esta fábrica? ¿Y cómo se distribuirá la fábrica? ¿Estará en el parámetro constructor como en la forma anterior?
fuente