Quindi un collega e io siamo in un dibattito piuttosto acceso. Stiamo iniziando un nuovo progetto e stiamo tentando di utilizzare BDD. Siamo entrambi principianti e non comprendiamo appieno le pratiche da utilizzare. Abbiamo scritto alcune specifiche e ora stiamo implementando il codice. Le cose stanno diventando piuttosto complicate dal momento che c'è molta interazione con il database. Siamo bloccati su come dovremmo prendere in giro i nostri dati. Il metodo che stavamo facendo avrebbe richiesto di prendere in giro i nostri metodi invece dei nostri dati. E 'più facile se vi mostro in codice ...BDD/TDD mocking dei dati in modo ingannevole
public static void AssignLeadToDistributor(int leadId, int distributorId)
{
Lead lead = GetById(leadId);
lead.DistributorId = distributorId;
Save(lead);
}
In sostanza, dovremmo ignorare GetById() e Save() per restituire i dati finte per mettere alla prova questo. Sembra avere più senso di farlo in questo modo:
public static void AssignLeadToDistributor(Lead lead, Distributor distributor)
{
lead.DistributorId = distirbutor.Id;
}
allora potremmo semplicemente prendere in giro i nostri oggetti.
Chiaramente il secondo metodo facilita il test. Tuttavia, l'argomento è che non vogliamo dover recuperare un nuovo oggetto lead e distributore sul nostro front-end, perché sarebbe più semplice passare semplicemente gli id dei nostri oggetti. Ridurre il codice effettivo nel nostro front-end.
Spero di averlo spiegato abbastanza bene.
Cosa ne pensate? Quale strada ha più senso?
Beh, certo, i Diagrammi decisionali binari sono grandiosi, ma non sono l'ultima cosa di ultima generazione che rende tutto ciò che sapevamo obsoleto ... Oh, aspetta, non importa. –