データ駆動型テストは、複数のデータセットを使用して同じテストを実行できる強力なアプローチです。この方法は、さまざまな入力の組み合わせでアプリケーションの動作を検証する場合に特に役立ち、さまざまなシナリオを完全にカバーします。この投稿では、Cypress でデータ駆動型テストを実装し、その機能を活用して効率的で保守可能なテストを作成する方法を検討します。
データ駆動型テストでは、テスト ロジックをテスト データから分離し、異なる入力でテストを複数回実行できるようにします。このアプローチは、エッジ ケースを特定し、ビジネス ロジックを検証し、アプリケーションが広範囲のデータを正しく処理できるようにするのに役立ちます。
サイプレスは、配列、フィクスチャ、外部ライブラリの使用など、データ駆動型テストを実装するためのいくつかの方法を提供します。例を挙げてこれらの方法を調べてみましょう。
1.配列の使用
配列を使用してさまざまなテスト データのセットを保存し、forEach メソッドを使用してそれらを反復処理できます。
例:
const testData = [ { username: 'user1', password: 'password1' }, { username: 'user2', password: 'password2' }, { username: 'user3', password: 'password3' } ]; describe('Data-Driven Testing with Arrays', () => { testData.forEach((data) => { it(`should log in successfully with username: ${data.username}`, () => { cy.visit('/login'); cy.get('input[name="username"]').type(data.username); cy.get('input[name="password"]').type(data.password); cy.get('button[type="submit"]').click(); cy.url().should('include', '/dashboard'); }); }); });
2.フィクスチャの使用
フィクスチャは、テスト データを JSON 形式で保存する外部ファイルです。 Cypress を使用すると、フィクスチャ ファイルをロードして、テストでデータを使用できます。
例:
[ { "username": "user1", "password": "password1" }, { "username": "user2", "password": "password2" }, { "username": "user3", "password": "password3" } ]
describe('Data-Driven Testing with Fixtures', () => { before(() => { cy.fixture('users').then(function (data) { this.users = data; }); }); it('should log in successfully with multiple users', function () { this.users.forEach((user) => { cy.visit('/login'); cy.get('input[name="username"]').type(user.username); cy.get('input[name="password"]').type(user.password); cy.get('button[type="submit"]').click(); cy.url().should('include', '/dashboard'); cy.visit('/logout'); // Log out after each login }); }); });
3.外部ライブラリの使用
より複雑なデータ駆動型のテスト シナリオの場合は、cypress-plugin-snapshots や cypress-data-driven.
cypress-data-driven の例:
npm install cypress-data-driven --save-dev
import dataDriven from 'cypress-data-driven'; const testData = [ { username: 'user1', password: 'password1', expectedUrl: '/dashboard1' }, { username: 'user2', password: 'password2', expectedUrl: '/dashboard2' }, { username: 'user3', password: 'password3', expectedUrl: '/dashboard3' } ]; describe('Data-Driven Testing with External Library', () => { dataDriven(testData).forEach((data) => { it(`should log in successfully with username: ${data.username}`, () => { cy.visit('/login'); cy.get('input[name="username"]').type(data.username); cy.get('input[name="password"]').type(data.password); cy.get('button[type="submit"]').click(); cy.url().should('include', data.expectedUrl); }); }); });
データ駆動型テストは、テスト範囲、保守性、効率を向上させる貴重なアプローチです。 Cypress の機能を活用し、配列、フィクスチャ、または外部ライブラリを使用することにより、アプリケーションが広範囲の入力を正しく処理することを保証する堅牢なデータ駆動型テストを実装できます。ベスト プラクティスに従うことで、テストの信頼性と有効性をさらに向上させることができます。
テストをお楽しみください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3