Skip to content

Latest commit

 

History

History
61 lines (41 loc) · 2.56 KB

04-snapshot-testing.md

File metadata and controls

61 lines (41 loc) · 2.56 KB

Testowanie snapshotów

Tłumaczenia: Français

AVA wspiera testowanie snapshotów (migawek), zgodnie z wprowadzeniem od Jest, poprzez interfejs Asercji. Możesz wykonać snapshot dowolnej wartości, a także elementów React:

// Your component
const HelloWorld = () => <h1>Hello World...!</h1>;

export default HelloWorld;
// Your test
const test = require('ava');
const render = require('react-test-renderer');
const HelloWorld = require('.');

test('HelloWorld component', t => {
	const tree = render.create(<HelloWorld/>).toJSON();
	t.snapshot(tree);
});

Wypróbuj w tym przykładowym projekcie.

Snapshoty są przechowywane obok plików testowych. Jeśli twoje testy są w test lub folderze tests, snapshoty będą przechowywane w folderze snapshots. Jeśli twoje testy są w folderze __tests__, wtedy będą przechowywane w folderze __snapshots__.

Powiedz, że masz ~/project/test/main.js który zawiera snapshoty asercji. AVA utworzy dwa pliki:

  • ~/project/test/snapshots/main.js.snap
  • ~/project/test/snapshots/main.js.md

Pierwszy plik zawiera rzeczywistą migawkę i jest wymagany do przyszłych porównań. Drugi plik zawiera twój raport migawki. Jest regenerowany po zaktualizowaniu migawek. Jeśli przekażesz go do kontroli źródła, możesz skorzystać z diff, aby zobaczyć zmiany w migawce.

AVA pokaże, dlaczego asercja migawki nie powiodła się:

Następnie możesz sprawdzić swój kod. Jeśli zmiana była zamierzona, możesz użyć --update-snapshots (lub -u) flagi, aby zaktualizować migawki:

$ ava --update-snapshots

Możesz określić stałą lokalizację przechowywania plików migawek w AVA konfiguracja package.json:

package.json:

{
	"ava": {
		"snapshotDir": "custom-directory"
	}
}

Pliki migawek zostaną zapisane w strukturze katalogów, która odzwierciedla strukturę plików testowych.

Jeśli używasz AVA dla wstępnie skompilowanych plików testowych, AVA spróbuje użyć map źródłowych, aby ustalić lokalizację oryginalnych plików. Migawki będą przechowywane obok tych plików, zgodnie z tymi samymi regułami, jak gdyby AVA wykonał bezpośrednio oryginalne pliki. Jest to świetne, jeśli piszesz testy w TypeScript (zobacz naszą formułę TypeScript).