相互依赖Jasmine测试

时间:2014-02-26 19:58:46

标签: node.js jasmine jasmine-node

我尝试使用jasmine-node测试来测试一些外部API测试。但运行整个测试套件只有在基本连接有效时才有意义。所以这基本上意味着我需要将这些信息从简单的ping测试移交给所有其他人。

这就是我尝试过但即使第一次测试通过也不会成功:

var canConnect = false;
describe("The API client", function () {
    it("can connect server", function (done) {
        api.ping(function (err) {
            expect(err).toBeNull();
            canConnect = true;
            done();
        })
    });

    // pointless the run these if the ping didn't work
    if (canConnect) describe("connected clients", function () {
        it("can use the API", function (done) {
            api.someOtherRequest(function(err) {
                expect(err).toBeUndefined();
                done();
            });
        })

    });
})

有什么建议吗?也许甚至可以解决这个更聪明的方法?

干杯

1 个答案:

答案 0 :(得分:0)

我很好奇你为什么试图通过将它们称为客户端来测试Api功能?如果您是Api的开发人员,您似乎应该测试api服务器端的功能,然后模拟它以进行客户端测试。

但是,如果你必须这样做,你可以保证beforeEach中的任何内容都会在每次测试之前执行。将ping测试置于外部describe以使其首先运行,然后在嵌套beforeEach的{​​{1}}中,检查连接。

describe

您可以看到由于在每次测试之前完成了连接检查,您可以根据检查结果给出不同的结果。您还可以在checkConnectible中执行某种超时检查,并根据该值返回true或false。