当我单独运行以下测试时(通过注释),然后每个测试都通过。但是,当我运行所有测试时,我得到一个XmlHttpRequest未捕获的异常。 suave测试服务器接收请求,日志记录显示没有错误或问题:
var HOME_URL = "http://localhost:3000/request";
it("should echo the test request with response", function (done) {
var test = { act: 'test1', qry: {} };
var promise = webix.ajax().post(HOME_URL, JSON.stringify(test));
console.log('test1');
promise.then(function (resp) {
expect(resp.json().succ).to.be(true);
done();
}).fail(function (err) {
done();
throw(err);
});
});
it("should echo the test request with response 2", function (done) {
var test = { act: 'test2', qry: {} };
var promise = webix.ajax().post(HOME_URL, JSON.stringify(test));
console.log('test2');
promise.then(function (resp) {
expect(resp.json().succ).to.be(true);
done();
}).fail(function (err) {
console.log('echo test error', app.util.inspect(promise));
done();
throw(err);
});
});
任何想法可能是什么问题或如何调试这些测试?
自己运行代码(必须安装git node和npm):
git clone http://github.com/halcwb/GenUnitApp.git
cd GenUnitApp
git checkout failingServer
scripts/run.sh
打开第二个终端
./build.sh clienttests
投票时请说明,然后我可以改进我的问题。
答案 0 :(得分:0)
对于遇到此问题的任何人,您可以将ajax调用嵌套在before函数中,然后在测试中使用promises(webix.ajax返回一个promise),如:
var HOME_URL = "http://localhost:3000/request";
var test1, test2;
before(function () {
var req = { act: 'test1', qry: {}};
test1 = webix.ajax().post(HOME_URL, JSON.stringify(req));
req.act = "test2";
test2 = webix.ajax().post(HOME_URL, JSON.stringify(req));
});
it("should echo the test request with response", function (done) {
var promise = test1;
promise.then(function (resp) {
expect(resp.json().succ).to.be(true);
done();
}).fail(function (err) {
done();
throw(err);
});
});
it("should echo the test request with response 2", function (done) {
var promise = test2;
promise.then(function (resp) {
expect(resp.json().succ).to.be(true);
done();
}).fail(function (err) {
done();
throw(err);
});
});
请在投票时解释,我尝试学习。