Cypressでテストをもう一回やりたいことってありません?
例えば、以下のようなケースです。
- 画像を登録するテスト
- 画像を削除するテスト
- 画像を登録するテスト (1をもう一回やりたい・・・)
- 登録した画像を色々するテスト
4を1の後にやればいいじゃないか、というのはごもっともですが、
例えばシナリオテストで以下のような場合はちょっと面倒です。
2の管理者のテストが終わった後にまたユーザーの削除テストをしないといけません。
管理者とユーザーのtestspecを分けたい場合は見通しが悪くなります。
- ユーザーAの画像登録機能のテスト
- 管理者がユーザーAの画像を見るテスト
公式リファレンスでは、使いまわしたいテストはCommandに書け、とありますが、そのspec内で完結するテストをCommandに外出しするのも見通しが悪くなりますよね。
というときは、テスト関数を外に出しましょう。
以下が完成例です。
describe("retry test code", () => {
function commontest() {
Cypress.log({
message: "common test",
});
}
it("first test", commontest);
it("second test", ()=>{
Cypress.log({
message: "second test",
});
});
it("third test", commontest);
});
つまり、itに渡すテスト関数を外に出すことで、後からもう一度使うことができます。
それでは良いE2Eテストライフをお過ごしください。