Así que un compañero de trabajo y yo estamos en un debate bastante acalorado. Estamos comenzando un nuevo proyecto y estamos intentando usar BDD. Los dos somos principiantes y no comprendemos completamente qué prácticas deberían usarse. Hemos escrito algunas especificaciones y ahora estamos implementando el código. Las cosas se vuelven bastante complicadas ya que hay mucha interacción con la base de datos. Estamos estancados en cómo debemos burlarnos de nuestros datos. El método que estábamos siguiendo nos obligaría a burlarnos de nuestros métodos en lugar de nuestros datos. Es más fácil si te muestro en el código ...BDD/TDD burlarse de los datos de la manera engañosa
public static void AssignLeadToDistributor(int leadId, int distributorId)
{
Lead lead = GetById(leadId);
lead.DistributorId = distributorId;
Save(lead);
}
Básicamente, tendríamos que anular GetById() y Save() para devolver los datos simulados para poner a prueba esta. Se parece que tiene más sentido hacerlo así:
public static void AssignLeadToDistributor(Lead lead, Distributor distributor)
{
lead.DistributorId = distirbutor.Id;
}
entonces podríamos simplemente burlarse de nuestros objetos.
Claramente, el segundo método lo hace más fácil de probar. Sin embargo, el argumento es que no queremos tener que buscar un nuevo objeto principal y distribuidor en nuestro código front-end, porque sería más fácil pasar los identificadores de nuestros objetos. Reducir el código real en nuestra parte delantera.
Afortunadamente lo expliqué lo suficiente.
¿Qué piensan? ¿Qué forma tiene más sentido?
Bueno, claro, los diagramas de decisión binarios son geniales, pero no son la última generación que hace que todo lo que conocemos se vuelva obsoleto ... Oh, espera, no importa. –