0

当我单独运行以下测试(通过注释掉)时,每个测试都会通过。但是,当我运行所有测试时,我得到一个 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

否决票时请解释,然后我可以改进我的问题。

4

1 回答 1

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);
    });

});

投反对票的时候请解释一下,我努力学习。

于 2016-07-19T13:58:26.053 回答