Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の Mule アプリケーションをテストするとします。
<!-- Local Database Configuration -->
<db:config name="Database_Config">
<db:my-sql-connection host="localhost" port="1234" />
</db:config>
<!-- Properties according to the environment -->
<configuration-properties file="db.properties" />
<flow name="selectFlow" >
<!-- Perform a query based on a value passed by a variable -->
<db:select config-ref="${db.config}">
<db:sql >SELECT * FROM jobtitlelookup WHERE jobtitleid = :id</db:sql>
<db:input-parameters ><![CDATA[#[id : vars.jobid]]]></db:input-parameters>
</db:select>
<!-- Set two conditions depending on the query result -->
<choice>
<!-- If there is one or more values resulting from the query set those values as the payload -->
<when expression="#[sizeOf(payload) > 0]">
<set-payload value="#[payload[0].jobtitle]"/>
</when>
<!-- If the query throws no results, inform it in the payload -->
<otherwise>
<set-payload value="#['No job title for $(vars.jobid) was found']" />
</otherwise>
</choice>
<!-- Finally, pass the payload content as a Flow variable -->
<set-variable value="#[payload]" variableName="job" />
</flow>
src/main/resources
にある db.properties
ファイルには次のコンテンツが含まれています。
db.config=Database_Config
次の手順を実行するテストを作成する必要があります。
* jobtitlelookup
テーブルでデータベースサーバーを含める。
* Database Connector がクエリを実行するために有効なデータベース構造を提供する。
* Database Connector が使用する jobid
変数の値を渡す。
Anypoint Studio から、[Mule Palette (Mule パレット)] ビューに移動し、[Search in Exchange… (Exchange 内を検索…)] を見つけます。
検索バーで「MUnit Utils Database Server」 (MUnit ユーティリティデータベースサーバー) を検索し、そのモジュールをプロジェクトに追加します。
<!-- dbserver Dependency -->
<dependency>
<groupId>com.mulesoft.munit.utils</groupId>
<artifactId>munit-dbserver-module</artifactId>
<version>2.0.2</version>
<classifier>mule-plugin</classifier>
<scope>test</scope>
</dependency>
POM ファイル内の MUnit DB サーバーアーティファクトには test
スコープが必要です。
POM ファイルに h2
連動関係を追加し、mule-maven-plugin
で sharedLibrary
としてリストします。
<!--Third party libs-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.166</version>
</dependency>
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>${mule.maven.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<sharedLibraries>
...
<sharedLibrary>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</sharedLibrary>
</sharedLibraries>
</configuration>
</plugin>
キャンバスの [Global Elements (グローバル要素)] から [MUnit DB Server Config (MUnit DB サーバー設定)] を使用して、データベースサーバーを定義します。
この例では、CSV ファイルを使用して DB 構造とコンテンツを定義します。
プロジェクトの src/test/resources
ディレクトリに移動します。
次の値を含む、jobtitlelookup.csv
という名前のファイルを作成します。
JOBTITLE,EECSALARYORHOURLY,JOBTITLEID
Developer,10,DEV
[Global Elements (グローバル要素)] タブに移動し、[MUnit DB Server Config (MUnit DB サーバー設定)] 要素を選択します。
[Edit (編集)] をクリックし、次の項目に入力します。
名前 | MUnit_DB_Server_Config |
---|---|
CSV |
|
Database (データベース) |
|
Connection string parameters (接続文字列パラメーター) |
|
<dbserver:config name="MUnit_DB_Server_Config" >
<dbserver:connection csv="jobtitlelookup.csv" database="DATABASE_NAME" connectionStringParameters="MODE=MySQL" />
</dbserver:config>
DB サーバーに接続する DB 設定を定義します。
名前 | Test_Database_Config |
---|---|
Connection (接続) |
|
URL |
|
Driver class name (ドライバークラス名) |
|
<db:config name="Test_Database_Config">
<db:generic-connection url="jdbc:h2:tcp://localhost/mem:DATABASE_NAME" driverClassName="org.h2.Driver" />
</db:config>
テストデータベース設定を取得する src/test/resources
フォルダー内の db.properties
ファイルを定義します。
db.config=Test_Database_Config
DB サーバーをインストールして設定したら、テストを実行できます。
<munit:test name="selectFlowTest" description="Test selectFlow" >
<munit:behavior>
<!-- Passes a variable to value to run in the main flow. -->
<set-variable variableName="jobid" value="DEV" />
</munit:behavior>
<munit:execution>
<!-- Run the production code. -->
<flow-ref name="db-server-docsFlow"/>
</munit:execution>
<munit:validation>
<munit-tools:assert-equals actual="#[vars.job]" expected="Developer" />
</munit:validation>
</munit:test>
このテストは、本番コードで実行されるクエリが正しいこと、および DB サーバーによって返されるペイロードが適切なものであることを検証します。