メインコンテンツへスキップ
How Can We Help?

回答を検索するか、ナレッジベースを参照してください。

ドキュメント    チュートリアル    サポート

Contents
<すべてのトピック
印刷物

ソースのテスト チュートリアル

前提条件

このチュートリアルは、すべての手順を完了していることを前提としています。 ソースチュートリアル。 まだチュートリアルを完了していない場合は、このページに戻ってテスト方法を学習してください。

テストソースのルール

次に、単体テストを作成して、ルールが常に期待どおりに機能することを確認します。 この場合、プロジェクトまたはアプリ全体ではなく、単一のルールの機能のみをテストするため、統合テストよりも単体テストの方が適しています。

Vantiq テストは、順序付けられた一連の入力イベントによって駆動され、出力イベントのコレクションを期待します。 次のようなテストを作成したいと考えています。

  • Weather Source から Source イベントを入力として作成し、
  • の UPDATE を期待しています weatherReading 出力として入力します。

に移動します weatherReading ルールを選択して、 テストの作成 

テストの作成

テストの名前を次のように設定します。 weatherReading0.

テストポップアップの作成

鉛筆ボタンをクリックしてイベントオブジェクトを編集します。イベントオブジェクトは、テスト実行中にルールをトリガーするためにソースから送信されるメッセージです。以下のJSONオブジェクトは、ソースから受信したサンプルイベントです。 weather ソース。 これは、手順 2 でキャプチャおよびコピーされたものです。 ソースチュートリアル テストデータ受信機能を使用します。 正しい条件下でシステムを正確にテストするには、テスト データが実際のデータにできるだけ似ていることが重要です。

次のソース メッセージをコピーして JSON エディターに貼り付け、クリックします。 OK.

{
   "coord": {
      "lon": -122.12,
      "lat": 37.89
   },
   "weather": [
      {
         "id": 800,
         "main": "Clear",
         "description": "clear sky",
         "icon": "01d"
      }
   ],
   "base": "stations",
   "main": {
      "temp": 294.78,
      "feels_like": 290.57,
      "temp_min": 292.59,
      "temp_max": 297.15,
      "pressure": 1023,
      "humidity": 23
   },
   "visibility": 16093,
   "wind": {
      "speed": 3.1,
      "deg": 80
   },
   "clouds": {
      "all": 1
   },
   "dt": 1582680753,
   "sys": {
      "type": 1,
      "id": 3581,
      "country": "US",
      "sunrise": 1582641979,
      "sunset": 1582682233
   },
   "timezone": -28800,
   "id": 5364226,
   "name": "My Address",
   "cod": 200
}

新しい ホイール試乗 ペインが開き、テストのすべての一般プロパティがすでに設定されています。

ソーステスト

に移動します 入力 タブをクリックして、「入力」リストに入力が XNUMX つあることを確認します。

ソーステスト入力リスト

テストでは XNUMX つの出力が期待されます。 weatherReading ルールによって実行されるタイプ。これを行うには、 出力 タブをクリックします 出力を追加 ボタン。

その weather ルールは、 天気読書 一致する場所を持つ。テストは、名前空間にインスタンスをあらかじめ設定していると想定される。 天気読書 更新される予定です。 これを後で使用して含めます。   手順。 既存のインスタンスには、 郵便番号 の三脚と 場所 プロパティ。 ルールはインスタンスを更新して、 温度K プロパティ。

作成セッションプロセスで   リソースとして、 天気読書 ResourceId として、および UPDATE オペレーションとして。

ソーステストファースト出力ポップアップ

以下を行うには、 クリックして編集する ボタンをクリックして予想オブジェクト エディターを開き、次の内容の JSON オブジェクトを作成します。

{
   "location": "My Address",
   "tempK": 294.78,
   "zipCode": "94609"
}

詳しくはこちら OK イベント オブジェクト エディタを閉じてから、 OK もう一度保存して、「出力の編集」ポップアップを終了します。

テスト出力の XNUMX つは予期される UPDATE イベントであるため、既存のインスタンスがすでに存在することが暗示されます。 weatherReading UPDATED を入力します。 したがって、テストでは次のことが求められます。   の三脚と 掃除 手続き

 追加 IDE ナビゲーション バーのボタンにカーソルを合わせます。 高機能、および選択 手順。 クリック 新しい手順 ボタンをクリックして新しいプロシージャを作成します。

プロシージャに名前を付ける createWeatherData。 この手順はテストです   手順。 プロシージャは、 weather ソースをモックモードにし、必要なインスタンスを挿入します。 weatherReading タイプ。

ソース モック モードの詳細については、「ソース モック モード」を参照してください。 テストリファレンスガイド.

以下をコピーして、新しい手順ペインに貼り付けます。

PROCEDURE createWeatherData()
Test.startSourceMocking("weather", null, null)
INSERT weatherReading(location:"My Address", zipCode:"94609")

詳しくはこちら Save プロシージャを保存します。

XNUMX 番目のプロシージャを追加し、名前を付けます deleteWeatherData。 この手順は、 掃除 手順。 このプロシージャは、モック モードをオフにします。 weather 作成されたインスタンスをソースおよび削除します。 weatherReading タイプ。

以下をコピーして、新しい手順ペインに貼り付けます。

PROCEDURE deleteWeatherData()
DELETE weatherReading WHERE zipCode == "94609"
Test.stopSourceMocking("weather")

詳しくはこちら Save プロシージャを保存します。

に戻ります ホイール試乗 を定義していたペイン weatherReading0 テストしてクリックします 全般 タブには何も表示されないことに注意してください。

選択する 天気データの作成 として 設定手順 の三脚と 天気データの削除 として 掃除 手順。 Save テスト。

SetupAndCleanupSourceProcs

に戻ります weatherReading ルール。 新しいテストを選択します weatherReading0 [実行]ドロップリストから選択し、 ラン.

テストの実行

[テスト] ペインに戻ります。 weatherReading0 をクリックし テスト履歴を表示.

テスト履歴

テスト実行が成功したことを示す緑色のチェックが付いた XNUMX つのエントリが期待されます。

成功したテスト

ソースクエリモックの追加

テストの実行時に、プロシージャを使用してソースにテスト データを提供することもできます。 これはと呼ばれます ばかにしい ソース。このセクションでは、プロシージャを追加します。 querySourceAndInsert ソースを使用し、そのソースのテストに使用されるモック データを提供するプロシージャを追加します。 querySourceAndInsert 手順。

まずはプロシージャを作成しましょう querySourceAndInsert。 クリック 追加 ボタン、ホバーオーバー 高機能、クリック 手順… クリック 新しい手順 ボタンをクリックして新しいプロシージャを作成します。

その querySourceAndInsert プロシージャは、 weather のインスタンスを取得してから INSERTS します。 weatherReading タイプ。テストでこの手順を使用して、ソースへのクエリのモック化を示します。

以下をコピーして、新しい手順ペインに貼り付けます。

PROCEDURE querySourceAndInsert()
var weatherReading = SELECT FROM SOURCE weather 
weatherReading = weatherReading[0]
INSERT weatherReading(tempK:weatherReading.main.temp, location: weatherReading.name, zipCode = "94609")

詳しくはこちら Save プロシージャを保存します。

次に、モッキング プロシージャを作成しましょう。 クリック 追加 ボタン、ホバーオーバー 高機能、クリック 手順… クリック 新しい手順 ボタンをクリックして新しいプロシージャを作成します。

その queryProcedureOverride プロシージャは、 weather ソースの クエリー 常に同じオブジェクトを返すことで機能を実現します。

Procedure queryProcedureOverride(queryDesc)
return {
   "coord": {
      "lon": -122.12,
      "lat": 37.89
   },
   "weather": [
      {
         "id": 800,
         "main": "Clear",
         "description": "clear sky",
         "icon": "01d"
      }
   ],
   "base": "stations",
   "main": {
      "temp": 75,
      "feels_like": 290.57,
      "temp_min": 292.59,
      "temp_max": 297.15,
      "pressure": 1023,
      "humidity": 23
   },
   "visibility": 16093,
   "wind": {
      "speed": 3.1,
      "deg": 80
   },
   "clouds": {
      "all": 1
   },
   "dt": 1582680753,
   "sys": {
      "type": 1,
      "id": 3581,
      "country": "US",
      "sunrise": 1582641979,
      "sunset": 1582682233
   },
   "timezone": -28800,
   "id": 5364226,
   "name": "Walnut Creek",
   "cod": 200
}

詳しくはこちら Save プロシージャを保存します。

に戻ります createWeatherData 手順と更新 Test.startSourceMocking 設定手順 クエリモック手順 先ほど作成した新しいプロシージャに追加します。

PROCEDURE createWeatherData()
Test.startSourceMocking("weather", "queryProcedureOverride", null)
INSERT weatherReading(location:"My Address", zipCode:"94609")

詳しくはこちら Save プロシージャを保存します。

に戻ります querySourceAndInsert 手順。 クリック テストの作成 ボタン。 クリックして確認します Create Unit Test 入力してください querySourceAndInsert0 テスト名として入力し、 OK.

という新しいテスト querySourceAndInsert0 開きます。

テストの作成

に移動します 入力 タブを開くと、このテストには XNUMX つの入力があり、 querySourceAndInsert 手順。

テストの作成

この入力を右クリックして、 編集.

テストの作成

テスト入力では、期待される戻り値が自動的に生成されます。 これは通常非常に役立ちますが、この場合は、戻り値を、 queryProcedureOverride 手順。 したがって、 期待される戻り値 エディタをクリックして、 クリックして編集する ボタンをクリックし、エディターの内容を削除します。 これにより、テストはプロシージャの戻り値を無視します。 をクリックしてイベント オブジェクト エディタを閉じます。 OKをクリックして、「テスト入力の編集」ポップアップを終了します。 OK.

以下を行うには、 出力 タブ。 クリック 出力を追加 ボタン。

出力については、次のように設定します。   リソースとして、 天気読書 ResourceId として、および INSERT オペレーションとして。 これは、によって生成された INSERT をキャプチャします。 クエリソースと挿入 手順。

SourceTestSecondOutputPopup

以下を行うには、 クリックして編集する ボタンをクリックして予想オブジェクト エディターを開き、次の内容の JSON オブジェクトを作成します。

{
   "location": "Walnut Creek",
   "tempK": 75,
   "zipCode": "94609"
}

詳しくはこちら OK をクリックしてイベント オブジェクト エディタを閉じます。

に移動します 全般 タブ。 選択する 天気データの作成 として 設定手順 の三脚と 天気データの削除 として 掃除 手順。 Save テスト。

SetupAndCleanupSourceProcs

に戻ります querySourceAndInsert 手順。 新しいテストを選択します querySourceAndInsert0 [実行]ドロップリストから選択し、 ラン.

[テスト] ペインに戻ります。 querySourceAndInsert0 をクリックし Show Test History.

テスト実行が成功したことを示す緑色のチェックが付いた XNUMX つのエントリが期待されます。

成功したテスト

結論

このチュートリアルを正常に完了すると、ユーザーは次のことを理解できるようになります。

  • ルールとプロシージャの単体テストの作成
  • ルール/プロシージャ ペインから単体テストを実行する
  • ソースをモック モードに設定し、モック プロシージャでソースの動作をオーバーライドする
著作権 © 2024 VANTIQ, Inc.
この記事は役に立ちましたか?
0星のうち5
5スター 0%
4スター 0%
3スター 0%
2スター 0%
1スター 0%
5
フィードバックを共有してください
この記事をどのように改善できるでしょうか?
前へ 入門チュートリアルのテスト
次へ ユーザーと名前空間の管理