サイプレスとグラフによるE 2 Eテスト
7595 ワード
あなたは完全なスタックアプリケーションを持っており、サーバーはGraphSQL上で動作しています.あなたが分離してフロントエンドをテストすることができますので、それはあなたのバックエンドをモックアウトする一般的な練習です.それらは結局別々のシステムで、別々にテストされなければなりません.
これまで、これはかなり難しい仕事でした.デフォルトでは、サイプレスは、GraphSQLサーバーのモッキングのサポートが不十分です.
これは、あなたのサイプレステストでmogkingシームレスなGraphqlを達成するためのガイドです.これで簡単にパス、エッジケースとエラー状態をテストすることができますすべての単一のテストファイルの快適さから.
私たちはこの問題のために特別に構築されたライブラリを使用します.
https://github.com/warrenday/cypress-graphql-mock-network
サイプレスGraphicalのMOCKネットワークを使用すると、オートモッキングのための独自のGraphicスキーマを提供することができます.
以下にテストの様子を示します.
フードの下で、我々はGraphSQLツールのモッキングサポートを使用しています.それで、あなたはテストのために気にする模擬の部分を供給する必要があるだけです.残りはフィールドの型に基づいて自動的に入力されます.
次のスキーマを持ちましょう
彼らは、ここのLADパッチで猿でありません.サイプレスGraphicモックネットワークは、ものすごいものを使いますhttps://github.com/mswjs/msw 意味本当のネットワーク要求はあなたのアプリから送られます、そして、すべてのモッキングはネットワーク・タブとコンソールで検査可能です.これは、トンのデバッグ時に役立ちます.
ブラウザは実際のフェッチとXHR APIを使用し続けます.
ここでは、ネットワークタブがリクエストとモックアップされた応答を示します.
完全なセットアップガイドはGitHubで利用可能です.そして、それはまた、インストールとセットアップに関する詳細については頭が見えます
https://github.com/warrenday/cypress-graphql-mock-network
アクションでデモテストを見るには、repoを引いてください. デモアプリケーションを実行します.ディレクトリを変更してください/デモ、インストールして サイプレステストを実行します. これで、我々はそれから我々のテストが通るのを見なければなりません.
読書ありがとう.あなたが更なる質問をするならば、知らせてください.
これまで、これはかなり難しい仕事でした.デフォルトでは、サイプレスは、GraphSQLサーバーのモッキングのサポートが不十分です.
これは、あなたのサイプレステストでmogkingシームレスなGraphqlを達成するためのガイドです.これで簡単にパス、エッジケースとエラー状態をテストすることができますすべての単一のテストファイルの快適さから.
私たちはこの問題のために特別に構築されたライブラリを使用します.
https://github.com/warrenday/cypress-graphql-mock-network
サイプレスGraphicalのMOCKネットワークを使用すると、オートモッキングのための独自のGraphicスキーマを提供することができます.
以下にテストの様子を示します.
it('displays initial list of todos', () => {
cy.mockNetworkAdd({
Query: () => ({
todos: () => ([
{
id: '1',
title: 'Go shopping',
completed: true,
},
]),
}),
});
cy.get('li')
.eq(0)
.contains(/Go shopping/)
.should('exist');
});
エラー状態を模擬する方法の例を示しますcy.mockNetworkAdd({
Query: () => ({
todos: () => {
throw new Error('Oh dear');
},
}),
});
オートモーキング
フードの下で、我々はGraphSQLツールのモッキングサポートを使用しています.それで、あなたはテストのために気にする模擬の部分を供給する必要があるだけです.残りはフィールドの型に基づいて自動的に入力されます.
次のスキーマを持ちましょう
type Todo {
id: ID
title: String
completed: Boolean
}
type Query {
todo(id: ID!): Todo
}
我々の嘲笑で、我々が気にかけたすべてがタイトルであるならば、我々は以下をすることができました:cy.mockNetworkAdd({
Query: () => ({
todo: () => ({
title: 'I expect to be this'
})
}),
});
我々のアプリケーションのクエリをした場合でもid
, title
and completed
モックはまだ動作します.次のように受信します.{
"id": 1,
"title": "I expect to be this",
"completed": false
}
ヒアid
and completed
自動は自分のタイプに基づいてmockkedので、あなたのテストを合理化し、気にしないデータの束を提供することを避けることができます.労働者
彼らは、ここのLADパッチで猿でありません.サイプレスGraphicモックネットワークは、ものすごいものを使いますhttps://github.com/mswjs/msw 意味本当のネットワーク要求はあなたのアプリから送られます、そして、すべてのモッキングはネットワーク・タブとコンソールで検査可能です.これは、トンのデバッグ時に役立ちます.
ブラウザは実際のフェッチとXHR APIを使用し続けます.
ここでは、ネットワークタブがリクエストとモックアップされた応答を示します.
セットアップ
完全なセットアップガイドはGitHubで利用可能です.そして、それはまた、インストールとセットアップに関する詳細については頭が見えます
https://github.com/warrenday/cypress-graphql-mock-network
アクションでデモテストを見るには、repoを引いてください.
yarn
, その後、実行yarn start
yarn
それから実行yarn cypress
読書ありがとう.あなたが更なる質問をするならば、知らせてください.
Reference
この問題について(サイプレスとグラフによるE 2 Eテスト), 我々は、より多くの情報をここで見つけました https://dev.to/warrenday/e2e-testing-with-cypress-and-graphql-3njbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol