Ich habe zwei Tests in meiner Testgruppe. Einer benutzt es, der andere benutzt Test und sie scheinen sehr ähnlich zu funktionieren. Was ist der Unterschied zwischen ihnen?
describe('updateAll', () => {
it('no force', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"})
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(updatedItems.length);
})
});
test('force update', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"}, true)
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(0);
})
});
});
AKTUALISIEREN:
Es scheint, dass dies test
in der offiziellen API von Jest enthalten ist , aber it
nicht.
javascript
unit-testing
jestjs
C.Lee
quelle
quelle
it
könnte nur für Vertrautheit und Migration von anderen Frameworks da sein.test
der Alias lautetit
.Antworten:
In den Dokumenten heißt es hier :
it
ist ein Alias vontest
. Sie sind also genau gleich.quelle
Sie machen das Gleiche, aber ihre Namen sind unterschiedlich und damit ihre Interaktion mit dem Namen des Tests.
Prüfung
Was schreiben Sie:
Was Sie bekommen, wenn etwas ausfällt:
es
Was Du schreibst:
Was Sie bekommen, wenn etwas ausfällt:
Es geht also um Lesbarkeit, nicht um Funktionalität. Meiner Meinung nach hat es
it
wirklich Sinn, das Ergebnis eines fehlgeschlagenen Tests zu lesen, den Sie nicht selbst geschrieben haben. Es hilft, schneller zu verstehen, worum es beim Test geht.quelle
it('does this thing', () => {})
anstattit('should do this thing', () => {}
als seine kürzeretest('thing should do x')
kann bevorzugt werden,it('Should do X')
da diesit
oft vage ist.Wie die anderen Antworten klargestellt haben, tun sie dasselbe.
Ich glaube, die beiden werden angeboten, um entweder 1) " RSpec " -Stiltests wie:
oder 2) " xUnit " -Stiltests wie:
Docs:
quelle
Wie die Scherzdokumente sagen, sind sie dieselben: https://jestjs.io/docs/en/api#testname-fn-timeout
und beschreiben ist nur für den Fall gedacht, dass Sie Ihre Tests in Gruppen organisieren möchten: https://jestjs.io/docs/en/api#describename-fn
describe(name, fn)
Erstellt einen Block, der mehrere verwandte Tests zusammenfasst. Wenn Sie beispielsweise ein myBeverage-Objekt haben, das köstlich, aber nicht sauer sein soll, können Sie es testen mit:Dies ist nicht erforderlich - Sie können die Testblöcke direkt auf der obersten Ebene schreiben. Dies kann jedoch nützlich sein, wenn Sie es vorziehen, Ihre Tests in Gruppen zu organisieren.
quelle
Jest hat nicht erwähnt, warum sie zwei Versionen für genau die gleiche Funktionalität haben. Ich vermute, es ist nur für Konventionen. Test für Unit-Tests für Integrationstests.
quelle
Sie sind das gleiche. Ich verwende TypeScript als Programmiersprache, und wenn ich in die Definitionsdatei aus dem Quellcode des Scherzpakets von /@types/jest/index.d.ts schaue, sehe ich die folgenden Codes. Offensichtlich gibt es viele verschiedene Namen von "Test", Sie können jeden von ihnen verwenden.
quelle
it
undtest
ist dasselbe. Es bedeutet nur, dass ihr Typ der gleiche ist. Ich denke das nichtbeforeAll
und binafterAll
dasselbe, obwohl ihr Typ der gleiche ist.xit and xtest
Überspringt die Tests,it, fit, test
um Tests auszuführen. Danke für deine Antwort.