【发布时间】:2014-04-29 02:42:41
【问题描述】:
我想测试我的 web 应用程序是否处理失败场景并使用 QUnit 显示相应的错误消息。
我的应用执行 JSONP 请求以获取其初始化内容。我想测试我的数据源在启动时不可用的情况。这种情况会导致底层 JQuery 代码出错,我相信 QUnit 会拦截并将其捕获为失败的断言,即使这是预期的行为。
我的应用代码如下所示:
loadContents() {
$.ajax({
url: initURL,
dataType: 'jsonp',
timeout: timeout,
success: initializeDisplay,
error: displayErrorMessage,
});
}
我的测试用例如下所示:
asyncTest("Invalid initialization host", 1, function() {
initURL = invalidURL;
loadPageContents();
index = $("#error-message-div").text().indexOf(errorMessage);
ok(index > -1, "Error message not found");
})
当我运行测试时,我得到一个额外的断言,但总是失败。断言包含消息:“加载脚本错误”以及 JSONP GET 请求的 URL。
我相信我遇到的问题是,由于从未执行 JSONP 回调,它会引发 QUnit 认为是失败的断言的异常。
有什么想法可以让我的测试在不将异常注册为失败的情况下执行吗?
更新 - 澄清一下,QUnit 断言按预期工作,但是我不知何故得到了一个额外的断言,它总是失败。
谢谢!
【问题讨论】:
标签: jquery ajax json jsonp qunit