So ein Kollege und ich sind in einer ziemlich hitzigen Debatte. Wir beginnen ein neues Projekt und versuchen BDD zu verwenden. Wir sind beide Neulinge und verstehen nicht ganz, welche Praktiken verwendet werden sollten. Wir haben einige Spezifikationen geschrieben und implementieren jetzt den Code. Die Dinge werden ziemlich schwierig, da es viele Datenbankinteraktionen gibt. Wir stecken fest, wie wir unsere Daten verspotten sollten. Die Methode, die wir durchführten, verlangte von uns, unsere Methoden zu verspotten anstatt unsere Daten. Es ist am einfachsten, wenn ich Sie in Code zeigen ...BDD/TDD Mocking Daten die knifflige Art und Weise
public static void AssignLeadToDistributor(int leadId, int distributorId)
{
Lead lead = GetById(leadId);
lead.DistributorId = distributorId;
Save(lead);
}
Grundsätzlich würden wir GetById außer Kraft setzen müssen() und Save() Mock Daten zurück für uns, dies zu testen. Es scheint mehr Sinn zu machen, wie dies zu tun:
public static void AssignLeadToDistributor(Lead lead, Distributor distributor)
{
lead.DistributorId = distirbutor.Id;
}
Dann könnten wir nur unsere Objekte verspotten.
Die zweite Methode erleichtert eindeutig das Testen. Das Argument ist jedoch, dass wir kein neues Lead- und Verteilerobjekt in unserem Front-End-Code abrufen müssen, da es einfacher wäre, die IDs unserer Objekte einfach zu übergeben. Reduzieren Sie den tatsächlichen Code in unserem Frontend.
Hoffentlich habe ich das gut genug erklärt.
Was denkst du? Welcher Weg ist sinnvoller?
Nun, sicher, Binäre Entscheidungsdiagramme sind großartig, aber sie sind nicht die ultimative letzte Generation, die alles, was wir wussten, veraltet macht ... Oh, warte, vergiss es. –