我们正在使用theintern.io运行一些功能单元测试。不幸的是,第三方网络电话随机导致页面超时,从而导致所有单元测试失败。
在某个时刻,我想在所有网络电话上切断电源线,以防止浏览器挂起/测试失败。我已尝试window.stop()
,但这会导致测试挂起。
如何在没有的情况下停止所有网络电话,同时停止我的功能测试的javascript执行?
答案 0 :(得分:0)
首先,window.stop
不会停止javascript执行,在你的情况下,如果测试是动态加载的话,它可能看起来像这样做。
window.stop
与浏览器地址栏上的点击停止按钮相同(来源:https://developer.mozilla.org/en-US/docs/Web/API/Window/stop)。
现在回答您的问题,有多种方法可以解决这个问题,我的建议是模拟所有网络电话。 (假设第三方调用你提到的都是AJAX)。在编写单元测试时,这也是一种很好的做法。您可以使用sinon
。 (来源:http://sinonjs.org/)
您可以提供预期的回复,或只是提供404
或其他任何内容,并立即回复请求。这样,您的测试不会超时。希望它有所帮助
{
beforeEach() {
server = sinon.fakeServer.create();
},
afterEach() {
server.restore()
},
tests: {
testA() {
server.respondWith("GET", /<regexPattern>/,[200, {"Content-Type": "text/plain"},""]);
server.respondImmediately = true;
}
}
}