---
schema_version: "1"
id: 7bf4dd23ce4e1c6220fcd9e128df75c0638d47c8d6e1fa867faab39cd2c3dd12
title: テスト用のリソースのモッキング
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/munit/3.0/mock-file-cookbook.md
canonical_url: https://docs.mulesoft.com/jp/munit/3.0/mock-file-cookbook
source_site: docs.mulesoft.com
content_type: documentation
content_hash: b6d425ff2c6bb59c6a60d5d3286d742e84712590f99d2b3b4d619f60a674fb4d
description: MuleSoft Documentation Site
release: "3.0"
latest: false
---
# テスト用のリソースのモッキング

テストスイートが肥大化し複雑になり始めたら、テストコードの一部をコードを「外部化」するのが良いでしょう。外部化により、コードを見やすく整理できるだけではなく、テストをモッキングするのに必要なファイルを再利用できます。

Mule 3 では、​`getResourceAsString()`​ 関数を使用して外部 (モック) リソースをテストに組み込んでいます。Mule 4 では、DataWeave スクリプトを作成するか、または DataWeave モジュールで変数を使用することで、テストコードをモッキングできます。

## [](#dataweave-ファイルを使用したファイルのモック)DataWeave ファイルを使用したファイルのモック

モッキングするデータを返す DataWeave ファイルを作成し、​`src/test/resources`​ フォルダーに保存してから、テストで DataWeave の関数を使用してこのファイルを読み込みます。

たとえば、​`src/test/resources/sample_data`​ フォルダーに ​`mockPost.dwl`​ というファイルを次のコンテンツで作成してあるとします。

```none
%dw 2.0
output application/json
---
{
	"foo" : "var"
}
```

この DataWeave ファイル (​`mockPost.dwl`​) は、​`http:request`​ 要求で返されるモックペイロードを作成するサンプルです。

`mock-when`​ で ​`then-return`​ セクションを設定する場合には、​`readUrl`​ 関数を使用してマッピングファイルを読み込みます。

```xml
<munit-tools:then-return>
  <munit-tools:payload value="#[readUrl('classpath://sample_data/mockPost.dwl')]" mediaType="application/json" encoding="UTF-8" />
</munit-tools:then-return>
```

`classpath-based`​ URL では、​`classpath:`​ プロトコルプレフィックスを使用して ​`src/test/resources`​ で定義されているファイルを探します。

## [](#dataweave-モジュールで変数を使用したファイルのモック)DataWeave モジュールで変数を使用したファイルのモック

DataWeave 変数を使用してデータを宣言することで、モックデータを単一のファイルにまとめた DataWeave モジュールを作成できます。

たとえば、​`src/test/resources`​ フォルダーに ​`TestData.dwl`​ ファイルを作成することでカスタム DataWeave モジュールを作成し、異なるモックデータを (ファイルから、またはインラインで) 参照する変数を追加します。

```none
import getResourceAsString from MunitTools

var mockPost = readUrl('classpath://sample_data/mockPost.dwl')
var foo = "N123"
var jsonFromFile = read(getResourceAsString('sample_data/mydata.json'), 'application/json')
var jsonObject = { paymentID: "1B56925769601335TLQMIWVY" }
```

その後、自分のモジュールで変数をインポートすることによって DataWeave モジュールで定義されている変数にアクセスできます。

```xml
<munit-tools:then-return >
    <munit-tools:variables>
        <munit-tools:variable key="ticket" value="#[import TestData output application/json --- TestData::mockPost]" mediaType="application/json" />
    </munit-tools:variables>
</munit-tools:then-return>
```

## [](#関連情報)関連情報

- [カスタムモジュールおよびマッピングの作成](https://docs.mulesoft.com/dataweave/latest/dataweave-create-module)