0
我正在嘗試構建一個測試,用於驗證接收到的API請求錯誤的錯誤消息。我正在使用node-jasmine和frisby編寫測試,但無法使用點符號訪問JSON值。使用jasmine-node/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
我在郵差其作品寫了一個類似的測試,我想這些試驗轉化成可以被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";
感謝您對這個代碼片段,這可能會提供一些有限的短期幫助。通過展示*爲什麼*這是一個很好的解決方案,並且使它對未來的讀者更有用,一個正確的解釋[將大大提高](// meta.stackexchange.com/q/114762)其長期價值其他類似的問題。請[編輯]你的答案以添加一些解釋,包括你所做的假設。 – 2018-03-07 12:46:35