LoginSignup
0
0

More than 3 years have passed since last update.

Cypressでテストを使いまわしたい、同じspecの中でもう一回テストをしたい時のやり方

Posted at

Cypressでテストをもう一回やりたいことってありません?

例えば、以下のようなケースです。

  1. 画像を登録するテスト
  2. 画像を削除するテスト
  3. 画像を登録するテスト (1をもう一回やりたい・・・)
  4. 登録した画像を色々するテスト

4を1の後にやればいいじゃないか、というのはごもっともですが、
例えばシナリオテストで以下のような場合はちょっと面倒です。
2の管理者のテストが終わった後にまたユーザーの削除テストをしないといけません。
管理者とユーザーのtestspecを分けたい場合は見通しが悪くなります。

  1. ユーザーAの画像登録機能のテスト
  2. 管理者がユーザー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テストライフをお過ごしください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0