BAT テストの設定および記述方法

基本的なプロジェクトフォルダ、設定ファイル、「Hello, World」テストのサンプル、.yaml ディスクリプタファイルが含まれるサンプルのプロジェクトを作成するには、「bat init」コマンドを実行します。テストのサンプルの実行方法については、「BAT テストの実行」をお読みください。

または、基本的なプロジェクトを自分でセットアップする場合は、次の手順を実行します。

  1. 設定 YAML のディレクトリ (例: /api-monitoring) およびテストのサブディレクトリ (例: /tests) を作成します。

  2. テストのマニフェストファイルである最小限の bat.yaml を作成します。たとえば、この手順の bat.yaml では 2 つのテストファイルをリストします。

    files:
    
     - file: ./tests/step.0.dwl
     - file: ./tests/step.1.dwl
    
    suite:
      name: "hello world test suite"
  3. テストディレクトリ /api-monitoring の最上位に bat.yaml を保存します。

  4. テストファイルを作成します。次に例を示します。

    // Functional test for http://apimon.cloudhub.io
    
    import * from bat::BDD
    import * from bat::Assertions
    ---
    describe `api-mon` in [
    
      // First, get a list of users
      GET `http://apimon.cloudhub.io/users` with {
    
      } assert [
        $.response.status mustEqual 200
      ]
    
    ]

    GET 関数は、ワークフローの前半で作成したデプロイ済みのプロキシの URL を指定します。たとえば、CloudHub では、API Manager から URL を取得します。

    bat api mgr proxy url
  5. テストファイルに step.0.dwl と名前を付けて /api-monitoring/tests サブディレクトリに保存します。

  6. もう 1 つのテストファイルを作成して step.1.dwl と名前を付けて保存します。

    // Functional test for http://apimon.cloudhub.io
    
    import * from bat::BDD
    import * from bat::Assertions
    ---
    describe `api-mon` in [
      it `assert that there are 10 users` in [
        GET `http://apimon.cloudhub.io/users` with {} assert [
          $.response.status mustEqual 200, //< ---- ASSERTION
          $.response.mime mustEqual "application/json", //< ---- ASSERTION
          log($.response.body match{case list is Array -> sizeOf(list) mustEqual 10
            else -> false}) // < ---- ASSERTION
        ]
      ]
    ]

    このテストでは、10 が API によって返されるユーザリスト配列のサイズであるとアサートします。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub