Deine Antwort hat mir geholfen. Danke schön. Allerdings was Sie als bereitstellen jest.config.[js|ts] ist das JSON-Format. Um dieses Snippet zu verwenden, müssen Sie den Dateinamen in ändern jest.config.json.
– Betty
8. November 2022 um 20:42 Uhr
@Betty hat die js/ts-Version expliziter gemacht
– Feuchtbobo
9. November 2022 um 5:31 Uhr
Ist @testing-library/jest-dom auch für Scherztests im Browser erforderlich? Oder fügt dieses Paket einfach zusätzliche Behauptungen hinzu? jest-environment-jsdom nicht nativ?
– Michael Lynch
15. März um 19:40 Uhr
@MichaelLynch Ich glaube, das ist ein optionales Paket, wenn Sie die Testbibliothekssuite verwenden, daher ist es nicht erforderlich, grundlegende Scherztests zu schreiben. Ihre Einschätzung, dass Sie zusätzliche Behauptungen hinzufügen, ist richtig.
– Feuchtbobo
16. März um 9:01 Uhr
Dies kann auf Testdateibasis gelöst werden, indem a hinzugefügt wird @jest-environment docblock an den Anfang Ihrer Datei. Zum Beispiel:
/** @jest-environment jsdom */
import React from 'react'
import { render } from '@testing-library/react'
import Button from '.'
describe('Button', () => {
it('renders button without crashing', () => {
const label="test"
render(<Button label={label} />)
})
})
Wenn Ihr Projekt eine Mischung aus UI- und Nicht-UI-Dateien enthält, ist dies oft besser, als das gesamte Projekt durch Einstellung zu ändern "testEnvironment": "jsdom" innerhalb Ihrer package.json- oder Jest-Konfiguration. Durch das Überspringen der Initialisierung der JSDom-Umgebung für Nicht-UI-Tests kann Jest Ihre Tests schneller ausführen. Tatsächlich ist das der Grund, warum Jest hat die Standardtestumgebung in Jest 27 geändert.
/** @jest-environment jsdom */ funktionierte, wenn es oben in der Datei platziert wurde, funktionierte jedoch nicht, wenn es über einer Testmethode platziert wurde. Weißt du, warum?
Standardmäßig ist der Wert für testEnvironment Knoten Dadurch werden alle Testfälle in der node.js-Umgebung ausgeführt, aber js-dom bietet eine browserähnliche Umgebung. Anstatt einen jsdom-Wert hinzuzufügen, können Sie sogar einen dateispezifischen Wert wie unten hinzufügen, was funktioniert.
/**
* @jest-environment jsdom
*/
// the above comment helps
test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});
Wir können sogar testdateispezifische Umgebungen hinzufügen, siehe diesen Link.