Sehen Sie sich den folgenden einfachen und unkomplizierten Code an:
function sum(a, b) { return a + b; }
Jetzt schreiben wir einige Tests dafür:
test('sum', () => { expect(sum(1, 2)).toBe(3); expect(sum(2, 3)).toBe(5); expect(sum(3, 4)).toBe(7); expect(sum(4, 5)).toBe(9); });
Wir haben eine 100-prozentige Abdeckung, oder? Nun ja, das tun wir, tatsächlich könnten wir sagen, dass wir eine Abdeckung von 400 % erreicht haben, da der gesamte Code viermal vollständig getestet wurde, aber tun wir das?
Die Wahrheit ist, dass wir das nicht tun. Wir testen die Funktion mit einer begrenzten Anzahl von Eingaben und berücksichtigen weder Randfälle noch testen wir die Funktion mit ungültigen Eingaben.
Bedenken Sie Folgendes:
sum(1, '2'); sum(1, null); sum(1, undefined);
Was würde in einem solchen Szenario passieren? Würde die Funktion einen Fehler auslösen? Würde es einen Wert zurückgeben? Würde es unsere Bewerbung beschädigen?
Testabdeckung ist ein leistungsstarkes Tool, aber nicht die ultimative Lösung. Es handelt sich um eine Metrik, die Ihnen helfen kann zu verstehen, wie viel von Ihrem Code getestet wird, aber sie sagt Ihnen nicht, wie gut er getestet wird.
Die Testabdeckung kann Ihnen bei der Quantität helfen, aber bei der Qualität kann sie wenig bewirken. Es liegt an Ihnen, gute Tests zu schreiben, Grenzfälle zu berücksichtigen, Ihren Code mit ungültigen Eingaben zu testen und sicherzustellen, dass Ihre Tests aussagekräftig und wertvoll sind.
Das war ein ziemlich kurzer Artikel, ich gebe zu, aber ich hoffe dennoch, dass er Ihnen als Erinnerung daran, wie wichtig es ist, gute Tests zu schreiben, nützlich war. Denken Sie daran, dass die Testabdeckung ein Werkzeug und kein Ziel ist. Es liegt an Ihnen, das Beste daraus zu machen.
Ciao,
Michael.
Das obige ist der detaillierte Inhalt vonDie Wahrheit über die Testabdeckung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!