0
私は、Mochaスクリプトでtry/catchの問題に直面しています。テストの中には失敗しているものの、モカは「すべてが合格」と表示しています。以下は私のテストスクリプトファイルです。この問題の修正に役立ちます。このコードでは、配列からURLに入力文字列をポストし、XMLレスポンスを期待しています。あなたが行って()メソッドがまだ呼び出されたエラーをキャッチし、約束を解決するとき、私はそう、すべてのテストに合格し、JSON文字列へのXML応答を解析するためにXml2jsモジュールを使用してモカのテストスクリプトでは、try/catchブロックがエラーを呑み込んでいます
var expect = require('chai').expect;
var request = require('supertest');
var xml2js = require('xml2js');
var PrettyError = require('pretty-error');
var pe = new PrettyError();
var async = require('async');
var fs = require('fs');
var parser = new xml2js.Parser();
var build = require('./config').Build;
var build_url = build.Environment[build.Type].HostUrl;
var inputArray1 = [];
describe('Verifying Incoming post output response', function() {
var index = 0;
validateFields(index);
function validateFields(index) {
var input = inputArray1[index];
var actualInputArray = input.split(",");
describe(actualInputArray[0], function() {
it(actualInputArray[1], function(done) {
request(build_url).post('/lead')
.send(actualInputArray[2])
.end(function(err, res) {
var resxml = res.text;
console.log("resxml", resxml);
parser.parseString(resxml, function(err, result) {
try {
expect(result['Header']['RESULT']).to.deep.equal([actualInputArray[3]]);
expect(result['Header']['STATUS_CODE']).to.deep.equal([actualInputArray[4]]);
expect(result['Header']['MESSAGE']).to.deep.equal([actualInputArray[5]]);
} catch (err) {
console.log(pe.render(err.message));
}
index = index + 1;
if (index < inputArray1.length) {
validateFields(index);
}
done();
});
});
}).timeout(5000);
});
}
});
elseブロックの後にdone()を削除し、** done(新しいError(pe.render(err.message)))を配置しました。 **キャッチブロックで**。今度はmochaがTotal passとfail countを正しく表示しています。 **しかし、私はタイムアウトエラー** – Aman
を取得しています。キャッチでdone()を呼び出すと、成功の場合には約束が解決されず、タイムアウトになります。 –