ThingWorx Flow > ThingWorx Flow SDK > コネクタテストの自動化
コネクタテストの自動化
コネクタテストヘルパーは CLI へのプログラムによるインタフェースを提供します。CLI で提供されるすべてのオプションは、プログラムによるインタフェースを介して指定することもできます。これは CLI を使用した対話型の実行を、自動化されたリグレッションテストに変更するときに役立ちます。
ptc-flow-test-helper npm モジュールは、コネクタ統合テストケースを自動化する API を提供します。これらの API を mocha などの任意の node.js テストフレームワークとともに使用することで、コネクタテストケースを自動化できます。
この npm モジュールは次の 3 つの API を提供します。
ConnectorTestHelper - コネクタ成果物を呼び出す API を提供します
ConnectorSyntaxTestHelper - コネクタ成果物の構文を検証します
JSONUtils - テストケースでアサーションとして使用される JSON ユーティリティを提供します
ConnectorTestHelper
次のコネクタ成果物をテストする API を提供します。
ActionAPI - コネクタの操作
ConnectionAPI - コネクタの接続
LookupAPI - コネクタの検索
TriggerAPI - コネクタのトリガー
CredsAPI - コネクタの認証を読み取って保存するユーティリティ
ActionAPI
個々のテストケースをテストする際に、テストスイートでこのメソッドを使用して設定された情報を渡す必要があります。
メソッド setTestInfo は、setTestInfo によって設定された情報を返します。このメソッドはテストスイートのレベル情報を設定します。
シグネチャ: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
以下の表で、上記サンプル内の各パラメータについて説明します。
パラメータ
説明
name
テストケースによってテストされる操作を設定します
connector
テストケースによってテストされるコネクタを設定します
version
テストする操作のバージョンを設定します
access_token
コネクタが OAuth 認証メカニズムを使用している場合、creds.json ファイルに保存されている OAuth オブジェクトの名前を指定します。
connection
コネクタが接続認証メカニズムを使用している場合、creds.json ファイルに保存されている接続オブジェクトの名前を指定します
skipSchemaValidation
入力または出力スキーマに照らした操作の入力または出力の検証をスキップするには、true に設定します
logLevel
ActionAPI によって使用されるログレベルを設定します
ActionAPI は、操作成果物を呼び出す際に、このメソッドで設定されている情報を使用します。
メソッド getTestInfo: このメソッドは setTestInfo によって設定された情報を返します
シグネチャ: getTestInfo()
戻り値のタイプ (オブジェクト情報)
test メソッド
このメソッドは、指定された操作成果物を実行し、コネクタの操作によって返された結果を返します。
Signature: test(Object input [optional], Object options [optional])
戻り値のタイプ: promise オブジェクト
input [optional] - 操作の入力 JSON スキーマに準拠する、操作成果物によって受け付けられる入力オブジェクトを指定します
options [optional] - オブジェクト情報で定義されている一部またはすべてのプロパティを含むオブジェクトを指定します。この options オブジェクトのプロパティ値によって、テストスイートレベルで setTestInfo メソッドによって情報オブジェクト内に設定されているプロパティがオーバーライドされます。
たとえば、テストスイートレベル情報が接続 action1 に設定されているとします。この options オブジェクトを使用して、プロパティ name : action2 を渡すことによって、コネクタ action1 の代わりに action2 を実行する test メソッドを呼び出すことができます。これは、action1 のテストスイートで必要とされるか作成されたテストデータを、action2 を使用して作成または削除するときに便利です。
ConnectionAPI
個々のテストケースをテストする際に、テストスイートでこのメソッドを使用して設定された情報を渡す必要があります。
メソッド setTestInfo: このメソッドは setTestInfo によって設定された情報を返します。このメソッドはテストスイートのレベル情報を設定します。
シグネチャ: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
以下の表で、上記サンプル内の各パラメータについて説明します。
パラメータ
説明
name
テストケースによってテストされる接続を設定します
connector
テストケースによってテストされるコネクタを設定します
version
テストする接続のバージョンを設定します
skipSchemaValidation
入力または出力スキーマに照らした操作の入力または出力の検証をスキップするには、true に設定します
logLevel
ConnectionAPI によって使用されるログレベルを設定します
ConnectionAPI は、接続成果物を呼び出す際に、このメソッドで設定されている情報を使用します。
メソッド getTestInfo - setTestInfo によって設定された情報を返します
シグネチャ: getTestInfo() - 戻り値のタイプ (オブジェクト情報)
test メソッド
このメソッドは、指定された接続成果物を実行し、コネクタの接続成果物によって返された結果を返します。
Signature: test(Object input [optional], Object options [optional])
戻り値のタイプ: promise オブジェクト
input [optional] - 接続の入力 JSON スキーマに準拠する、接続成果物によって受け付けられる入力オブジェクトを指定します
options [optional] - オブジェクト情報で定義されている一部またはすべてのプロパティを含むオブジェクトを指定します。この options オブジェクトのプロパティ値によって、テストスイートレベルで setTestInfo メソッドによって情報オブジェクト内に設定されているプロパティがオーバーライドされます。
たとえば、テストスイートレベル情報が接続 connection1 に設定されているとします。この options オブジェクトを使用して、プロパティ name : connection2 を渡すことによって、コネクタ connection1 の代わりに connection2 を実行する test メソッドを呼び出すことができます。これは、connection1 のテストスイートで必要とされるか作成されたテストデータを、connection2 を使用して作成または削除するときに便利です。
LookupAPI
メソッド setTestInfo: このメソッドは setTestInfo によって設定された情報を返します。このメソッドはテストスイートのレベル情報を設定します。
シグネチャ: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
以下の表で、上記サンプル内の各パラメータについて説明します。
パラメータ
説明
name
テストケースによってテストされる検索を設定します
connector
テストケースによってテストされるコネクタを設定します
version
テストする検索のバージョンを設定します
connection
コネクタが接続認証メカニズムを使用している場合、creds.json ファイルに保存されている接続オブジェクトの名前を指定します
access token
コネクタが OAuth 認証メカニズムを使用している場合、creds.json ファイルに保存されている OAuth オブジェクトの名前を指定します。
skipSchemaValidation
入力または出力スキーマに照らした操作の入力または出力の検証をスキップするには、true に設定します
logLevel
LookupAPI によって使用されるログレベルを設定します
test メソッド
このメソッドは、指定された検索成果物を実行し、コネクタの検索成果物によって返された結果を返します。
Signature: test(String method, Object input [optional], Object options [optional])
戻り値のタイプ: promise オブジェクト
method: テストする必要がある検索メソッド名を指定します。
input [optional]: 検索メソッドによって受け付けられる入力オブジェクトを指定します。
options [optional]: オブジェクト情報で定義されている一部またはすべてのプロパティを含むオブジェクトを指定します。この options オブジェクトのプロパティ値によって、テストスイートレベルで setTestInfo メソッドによって情報オブジェクト内に設定されているプロパティがオーバーライドされます。
さらに、このオブジェクトでは次のプロパティを指定できます。
searchById
サーチに使用する ID を設定します
searchByValue
サーチに使用する値を設定します
filter
アイテムをサーチするときのフィルタを設定します
たとえば、SearchById の値を指定して検索メソッドを実行する場合、options オブジェクトを使用してこの情報を指定します。
TriggerAPI
個々のテストケースをテストする際に、テストスイートでこのメソッドを使用して設定された情報を渡す必要があります。
メソッド setTestInfo - setTestInfo によって設定された情報を返します。このメソッドはテストスイートのレベル情報を設定します。
シグネチャ: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
以下の表で、上記サンプル内の各パラメータについて説明します。
パラメータ
説明
name
テストケースによってテストされるトリガーを設定します
connector
テストケースによってテストされるコネクタを設定します
version
テストするトリガーのバージョンを設定します
access_token
コネクタが OAuth 認証メカニズムを使用している場合、creds.json ファイルに保存されている OAuth オブジェクトの名前を指定します。
connection
コネクタが接続認証メカニズムを使用している場合、creds.json ファイルに保存されている接続オブジェクトの名前を指定します
skipSchemaValidation
入力/出力スキーマに照らした操作の入力または出力の検証をスキップするには、true に設定します
polling
トリガーのタイプがポーリングトリガーである場合、これを true に設定します。
logLevel
TriggerAPI によって使用されるログレベルを設定します
TriggerAPI は、操作成果物を呼び出す際に、このメソッドで設定されている情報を使用します。
メソッド getTestInfo - setTestInfo によって設定された情報を返します
シグネチャ: getTestInfo() - 戻り値のタイプ (オブジェクト情報)
test メソッド
このメソッドは、指定されたトリガー成果物を実行し、コネクタのトリガー成果物によって返された結果を返します。
Signature: test(String method, String event, Object input [optional], Object options [optional])
戻り値のタイプ、promise オブジェクト
method - テストする必要があるトリガーメソッド名を指定します。
event - トリガーの入力スキーマで定義されているトリガーイベントを指定します。
input [optional] - トリガーメソッドによって受け付けられる入力オブジェクトを指定します。
options [optional] - オブジェクト情報で定義されている一部またはすべてのプロパティを含むオブジェクトを指定します。この options オブジェクトのプロパティ値によって、テストスイートレベルで setTestInfo メソッドによって情報オブジェクト内に設定されている関連プロパティがオーバーライドされます。
さらに、ポーリングトリガーのテストでは、このオブジェクトで次のプロパティを指定できます。
interval
トリガーする間隔 (秒) を設定します。
stopAfter
トリガーへの呼び出しの最大回数を設定します。
meta
メタオブジェクトを設定します。
unixTime
秒数の近似として定義されている、特定の時点を表すシステム
たとえば、ポーリングトリガーのテスト中に unixTime を設定する場合、上記のオプションを使用します。
CredsAPI
このファイルで使用されているメソッドは次のとおりです。
getConnectionById - 指定された接続オブジェクト名に基づいて接続の詳細を返します。
シグネチャ: getConnectionById(uid)
getConnectionByIdWithHandle - ハンドルオブジェクト内の接続の詳細を返します。
シグネチャ: getConnectionByIdWithHandle(uid)
getOauthById - 指定された OAuth オブジェクト名に基づいて OAuth の詳細を返します。
シグネチャ: getOauthById(uid)
getOauthByIdWithHandle - ハンドルオブジェクト内の OAuth の詳細を返します。
シグネチャ: getOauthByIdWithHandle()
saveConnection - 接続を保存します。
シグネチャ: saveConnection()
saveOauth - OAuth の詳細を creds.json ファイルに保存します。
シグネチャ: saveOauth()
JSONUtils API
JSON アサーションライブラリ
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: json オブジェクトを比較するアサーションメソッド。両方の json オブジェクトが一致する場合にはそこから返された promise が解決し、一致しない場合には promise をエラーで却下します。ignoreDiff = { keys : [array of fields to be ignored from comparison]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
アサーション actualJSONArray が expectedJSONArray のサブセットであるかどうかを比較するメソッド
actualJSONArray が expectedJSONArray のサブセットである場合にはそこから返された promise が解決し、一致しない場合には promise をエラーで却下します
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
ConnectorSyntaxTestHelper API
このメソッドは、コネクタ成果物の構文を検証します。
これは以下のように単体テストで使用できます。
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())