> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# アクションをテストする

> Auth0 Actionsのテスト・デバッグ方法をご紹介します。

Auth0 Actionsのテスト・デバッグ方法は、実装段階によって異なります。

アクションを実装するときは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>から個別にテストすることをお勧めします。準備が完了したら、エンドツーエンドのフローが想定どおりに動作するかをAuth0 Dashboardのテナントログで検証しましょう。

<div id="test-individual-actions">
  ## 個別のアクションをテストする
</div>

個々のアクションは、Actions Code Editorでテストできます。このエディターのテスト機能は、アクションに関連付けられたフローに従って、サンプルペイロードを使用してアクションへの呼び出しをシミュレーションします。個々のアクションをテストするには：

1. [［Auth0 Dashboard］>［Actions（アクション）］](https://manage.auth0.com/#/actions)に移動し、編集するフローとアクションを選択します。
2. アクションコードエディターを見つけて、サイドバーから **［Test（テスト）］** （再生アイコン）を選択します。異なるペイロードでの結果を分析するために、［Test（テスト）］サイドバーのペイロードを編集します。
3. **\[Run（実行）］** を選択します。

テスト結果には、アクションが実行したステップや、コンソールの出力、生じたエラー、アクションの実行に関する統計が表示されます。

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/pd2Xk6Hu-Ldfi_VV/docs/images/ja-jp/cdy7uua7fh8z/7I4CRM8SmRFiibjuk55L86/c9c54d9970e470db48762af6b05c49b0/2025-01-10_13-32-11.png?fit=max&auto=format&n=pd2Xk6Hu-Ldfi_VV&q=85&s=f4b3426d7e717270df32189e20045b61" alt="Action Code Editorのテストモジュールのスクリーンショット" width="894" height="473" data-path="docs/images/ja-jp/cdy7uua7fh8z/7I4CRM8SmRFiibjuk55L86/c9c54d9970e470db48762af6b05c49b0/2025-01-10_13-32-11.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  アクションをテストするには、Management APIの[**Test an Action（アクションのテスト）** エンドポイント](https://auth0.com/docs/api/management/v2#!/Actions/post_test_action)を使って、アクション関連のフローに対応したペイロードを提供する方法もあります。サンプルペイロードを取得するには、Actionsコードエディターのテスト機能を使用してアクションをテストします。
</Callout>

<div id="debug-deployed-actions">
  ## デプロイしたアクションをデバッグする
</div>

アクションのテストが終わったら、デプロイしてその実行を観察しましょう。アクションのデプロイとフローへの追加が終わっていれば（アクションをフローにアタッチする方法については、「[初めてのアクションを作成する](/docs/ja-JP/ja-jp/customize/actions/write-your-first-action)」の「アクションをフローにアタッチする」セクションを参照）、ライブアクションを数ステップでデバッグできます。

<div id="verify-end-to-end-login-flow">
  ### エンドツーエンドのログインフローを検証する
</div>

`post-login`（ログイン後）アクションの場合は、テナントのログインを試行することでエンドツーエンドログインフローを検証できます。

1. [［Auth0 Dashboard］>［Authentication（認証）］>［Authentication Profile（認証プロファイル）］](https://manage.auth0.com/#/authentication-profiles)に移動し、 **［Try（試す）］** を選択します。ウィンドウが開き、サンプルログインが表示されます。
2. ログインフローを続行します。ログインフローは、設定されているアクションを実行します。

プロセスが完了するとリダイレクトが行われ、リダイレクト先のページにアプリケーションが受け取るユーザープロファイル属性、またはエラーメッセージとその内容が表示されます。

<div id="analyze-tenant-logs">
  ### テナントログを分析する
</div>

フローに関連付けられたアクションがバインドされているトリガーが実行されるたびに、[テナントログ](/docs/ja-JP/ja-jp/deploy-monitor/logs/view-log-events)にアクション実行の詳細が含まれます。

テナントログのリストでは、アクションに関連するログを確認できます。以下の例では、`Success Login`（ログイン成功）のログタイプが、このテナントの`post-login`（ログイン後）トリガーのアクションに関連付けられています。

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/TAtXfl0iCCUYtXZs/docs/images/ja-jp/cdy7uua7fh8z/4hIo2YJ8fr2tfMEWhaLyn4/c5427db5eb3a3cc4cd2c96a4c4c012c0/2025-01-31_14-24-28.png?fit=max&auto=format&n=TAtXfl0iCCUYtXZs&q=85&s=2c96c6f5453ee5013af7c34d374c5307" alt="アクション実行に関連したログを示す、Auth0 Dashboardのテナントログリストのスクリーンショット" width="1529" height="758" data-path="docs/images/ja-jp/cdy7uua7fh8z/4hIo2YJ8fr2tfMEWhaLyn4/c5427db5eb3a3cc4cd2c96a4c4c012c0/2025-01-31_14-24-28.png" />
</Frame>

アクションに関連付けられるログタイプの例としては、次のようなものが挙げられます：

<table class="table">
  <thead>
    <tr>
      <th><b>名前</b></th>
      <th><b>トリガー</b></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>正常なログイン</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-login">post-login</a></td>
    </tr>

    <tr>
      <td>失敗したログイン</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-login">post-login</a></td>
    </tr>

    <tr>
      <td>正常な交換</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-login">post-login</a></td>
    </tr>

    <tr>
      <td>失敗した交換</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-login">post-login</a></td>
    </tr>

    <tr>
      <td>正常なパスワード変更</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-change-password">post-change-password</a></td>
    </tr>

    <tr>
      <td>失敗したパスワード変更</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/post-change-password">post-change-password</a></td>
    </tr>

    <tr>
      <td>正常なサインアップ</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/pre-user-registration">pre-user-registration</a></td>
    </tr>

    <tr>
      <td>失敗したサインアップ</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/pre-user-registration">pre-user-registration</a></td>
    </tr>

    <tr>
      <td>正常な交換</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/credentials-exchange">credentials-exchange</a></td>
    </tr>

    <tr>
      <td>失敗した交換</td>
      <td><a href="/docs/ja-JP/ja-jp/customize/actions/triggers/credentials-exchange">credentials-exchange</a></td>
    </tr>
  </tbody>
</table>

アクション実行に関する詳細を表示するには、アクション実行に関連しているログを選択してから、 **［Action Details（アクションの詳細）］** ビューを選択します。［Action Details（アクションの詳細）］には、実行の統計、コンソールの出力、エラーが表示されます。

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/P5C2FvJW5xWCh6NI/docs/images/ja-jp/cdy7uua7fh8z/1WrsQvjZxI2WRMrtltandy/d849efb5ff3e550ceaf4f96d88a81130/2025-01-29_11-52-01.png?fit=max&auto=format&n=P5C2FvJW5xWCh6NI&q=85&s=fccd565c2a6397f5494c17eadfc4b83b" alt="アクションのテストに関連した個別ログのスクリーンショット。" width="1042" height="794" data-path="docs/images/ja-jp/cdy7uua7fh8z/1WrsQvjZxI2WRMrtltandy/d849efb5ff3e550ceaf4f96d88a81130/2025-01-29_11-52-01.png" />
</Frame>

<div id="unit-test-actions">
  ## アクションのユニットテスト
</div>

Auth0 Actionsのユニットテストを行うには、アクション関数に渡されるイベントとAPIをモックします。アクションは、バージョン制御またはローカルディレクトリに配置でき、Jestなどのツールを使って自動的にテストできます。次の例では、[Login/Post Login](/docs/ja-JP/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger)トリガーと[Jest](https://jestjs.io/)を使用してモックとテストを行います。

**アクションコード：**

```javascript lines theme={null}
// action.js

exports.onExecutePostLogin = async (event, api) => {
  const namespace = "https://my-app.example.com";
  if (event.authorization) {
    api.idToken.setCustomClaim(`${namespace}/favorite_color`, "pink");
  }
};
```

**テストファイルコード：**

```javascript lines theme={null}
// action.spec.js

const { onExecutePostLogin } = require("./action.js");
test("sets favorite_color ID token claim to pink", async () => {
  const namespace = "https://my-app.example.com";
  const mockFunction = jest.fn();
  const mockApi = { idToken: { setCustomClaim: mockFunction } };
  const mockEvent = {authorization: {}};

  await onExecutePostLogin(mockEvent, mockApi);
  expect(mockFunction).toBeCalledWith(
    `${namespace}/favorite_color`,
    "pink"
  );
});
```

<div id="best-practices">
  ## ベストプラクティス
</div>

Auth0でアクションを構築する場合は、[環境ごとに専用のAuth0テナントを作成することをお勧めします](/docs/ja-JP/ja-jp/get-started/auth0-overview/create-tenants/set-up-multiple-environments)。そうすれば、運用環境のユーザーベースをその他の環境から隔離できるだけでなく、環境ごとに別々の管理者を設定できます（たとえば、エンジニアが運用設定へのアクセス権を持たない場合など）。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  CLIやCI/CDのパイプラインを介してアクションを完全に管理、テストして、デプロイしたい場合は、[Deploy CLI Tool](/docs/ja-JP/ja-jp/deploy-monitor/deploy-cli-tool)を使用します。
</Callout>
