0

API への不正なリクエストに対して受信したエラー メッセージを検証するテストを作成しようとしています。node-jasmine と frisby を使用してテストを記述していますが、ドット表記で JSON 値にアクセスするのに問題があります。

 var frisby = require('frisby');
    frisby.create('JSON Error')
      .put('url', {
      }, {json: true})
      .expectStatus(400)
      .expectHeaderContains('content-type', 'application/json')
      .auth('username', 'password')
      .afterJSON(function (body) {
        //changed values
        expect(body.error.newEmail).toMatch('missing-required-key'),
        expect(body.error.oldEmail).toMatch('missing-required-key')
      })
    .toss();

予期される JSON 応答本文

{
"error": {
"newEmail": "missing-required-key",
"oldEmail": "missing-required-key"
}
}

テストの結果、次のエラーが発生しました:

Cannot read property newEmail of undefined

Postman で動作する同様のテストを作成しました。これらのテストを node.js で使用できるものに変換しようとしています。

郵便配達員の作業例:

var body = JSON.parse(responseBody);

//error messages

var newEmailError = body.error.newEmail;
var oldEmailError = body.error.oldEmail;

tests["New Email Error Message"] = newEmailError === "missing-required-key";
tests["Old Email Error Message"] = oldEmailError === "missing-required-key";
4

2 に答える 2

0

提供されたエンドポイントが正しくないことが判明しました。テストは正しいエンドポイントで有効です!

于 2015-03-16T15:43:45.203 に答える