我尝试使用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();
});
})
});
})
有什么建议吗?也许甚至可以解决这个更聪明的方法?
干杯
答案 0 :(得分:0)
我很好奇你为什么试图通过将它们称为客户端来测试Api功能?如果您是Api的开发人员,您似乎应该测试api服务器端的功能,然后模拟它以进行客户端测试。
但是,如果你必须这样做,你可以保证beforeEach
中的任何内容都会在每次测试之前执行。将ping测试置于外部describe
以使其首先运行,然后在嵌套beforeEach
的{{1}}中,检查连接。
describe
您可以看到由于在每次测试之前完成了连接检查,您可以根据检查结果给出不同的结果。您还可以在checkConnectible中执行某种超时检查,并根据该值返回true或false。