Skip to main content

アプリケーションのテスト

リストをGitHub Marketplaceにサブミットする前に、APIとwebhookを使ってアプリケーションをテストし、顧客に理想的な体験を提供できるようにすることをGitHubはおすすめします。 オンボーディングの専門家の検証前に、アプリケーションは支払いフローを適切に処理しなければなりません。

注: この記事は、GitHub Marketplace でのアプリの公開にのみ適用されます。 GitHub Marketplace での GitHub Actions の公開について詳しくは、「GitHub Marketplaceでのアクションの公開」をご覧ください。

アプリケーションのテスト

ドラフトのGitHub Marketplaceリストを使って、それぞれの支払いフローをシミュレートできます。 リストがドラフト状態にあるということは、まだそれが承認のためにサブミットされていないということです。 ドラフトの GitHub Marketplace リストを使用して購入しても、実際のトランザクションは作成 されず、GitHub がクレジット カードに請求することはありません。 シミュレートできるのはドラフトのリストに掲載されているプランの購入のみであり、ドラフトのプラン購入はシミュレートできません。 詳細については、「アプリケーションのリストのドラフト」および「アプリケーション内でのGitHub marketplace APIの使用」を参照してください。

変更のテストのために開発アプリケーションをドラフトリストと使用する

GitHub Marketplaceリストは、1つのアプリケーションの登録とのみ関連づけることができ、それぞれのアプリケーションは自身のGitHub Marketplaceリストにのみアクセスできます。 そのため、運用アプリと同じ設定で別個の開発アプリを設定し、テストに使用できる ドラフト のGitHub Marketplace リストを作成することをお勧めします。 ドラフトのGitHub Marketplaceリストを使えば、プロダクションのアプリケーションのアクティブなユーザに影響することなく変更をテストできます。 開発のGitHub Marketplaceリストはテストにのみ使われるので、サブミットする必要はありません。

ドラフトのGitHub Marketplaceリストは公開アプリケーションに対してのみ作成できるので、開発アプリケーションは公開しなければなりません。 公開アプリケーションは、アプリケーションのURLを共有しないかぎり、公開されたGitHub Marketplaceリスト外で見つかることはありません。 ドラフト状態のMarketplaceリストは、アプリケーションの所有者にしか見えません。

ドラフトリストと共に開発アプリケーションができたら、GitHub Marketplace APIやwebhookと統合しながらそれを使ってアプリケーションの変更をテストできます。

GitHub Marketplaceで公開されているアプリケーションでは、購入のテストを行わないでください。

Marketplaceの購入イベントのシミュレーション

テストのシナリオでは、無料トライアルを提供するリストプランをセットアップし、無料と有料のサブスクリプション間の切り替えが必要になるかもしれません。 ダウングレードやキャンセルは、次回の請求期間までは有効にならないため、GitHub は開発者のみの機能として、changed および cancelled のプラン アクションを強制的にすぐに有効にする [保留中の変更の適用] 機能を提供しています。 https://github.com/settings/billing#pending-cycle: で、ドラフト Marketplace のリストがあるアプリの [保留中の変更の適用] にアクセスできます。

API のテスト

ほとんどのGitHub Marketplace APIエンドポイントに対しては、テストに利用できるハードコーディングされた偽のデータを返すスタブのAPIエンドポイントも提供されています。 スタブ データを受信するには、ルートに /stubbed を含むスタブ URL を指定する必要があります (例: /user/marketplace_purchases/stubbed)。 このスタブ データのアプローチをサポートするエンドポイントのリストについては、GitHub Marketplace エンドポイントに関するページを参照してください。

webhookのテスト

GitHubは、デプロイされたペイロードをテストするためのツールを提供しています。 詳しくは、「webhookのテスト」を参照してください。