javascript - Jest - Hämta test- och beskrivningsnamn
Jag försöker få namnet på testnamnet som skickades in i it(name: string) Jest-funktionen, samt beskrivningsnamnet som skickades in i describe(name: string, ....).
Finns det ett sätt att få tillgång till detta på något sätt?
t.ex.
describe("Description", () => {
it("Test", () => {
const description = "How do I get the description name?"
const test = "How do I get the test name?";
expect(`${description} - ${test}`).toBe("Description - Test");
});
})
CodeSandbox-länk
Uppdatering 1
Den bakomliggande anledningen till att jag vill ha detta är att jag vill göra vissa egna namnkonventioner för snapshots baserat på describe, test och vissa miljövariabler (t.ex. viewport-storlekar + mock/real data).
Svar #1
Du kan uppnå detta genom att använda en anpassad matchare
expect.extend({
testName(exp) {
return {
pass: this.currentTestName === exp,
message: () => '',
};
},
});
describe("Description", () => {
it("Test", () => {
expect(`Description Test`).testName();
});
});
Svar #2
Kanske är den mest uppenbara lösningen det du vill ha. Istället för att skicka litteraler till describe och it lagrar du dem bara i respektive konstanter som sedan enkelt kan nås inom de respektive testfallen genom den yttre omfattningen.
Dessa konstanter kan enkelt initialiseras antingen med värden från miljövariablerna eller med bokstavliga standardvärden.
const suiteA = 'Description';
describe(suiteA, () => {
const testA = 'Test';
it(testA, () => {
expect(`${suiteA} - ${testA}`).toBe("Description - Test");
});
})
