javascript - 单元测试没有失败

标签 javascript ajax unit-testing jasmine jasmine2.0

我正在尝试编写单元测试用例,用于 Web API 调用。

下面显示成功:

Success Unit Test (jsfiddle)

      getProduct("jsonp","https://maps.googleapis.com/maps/api/e

Error Unit Test (jsfiddle)但它仍然显示“通过”

       getProduct("jsonp","https://sdfsdfdfmaps.googleapis.com/maps/api/e

上一个正确的 webapi url : https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

错误的 wepapi 网址:https://sdfsdfdfmaps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

即使 wepapi url 是错误的。测试通过。

最佳答案

删除 spy 功能并添加一个 fail 回调,如果 ajax 调用失败,则会引发错误,如下所示:

function getProduct(dataType,serviceURL,langCode ,callback) {
    $.ajax({
        type: 'GET',
        dataType: dataType,
        url: serviceURL + langCode,
        success: callback,
        fail: () => { throw new Error( 'failed' ); },
    });
}

参见this fiddle here .

但这会导致实际调用。为了防止调用发生,请使用 spy 函数并解析 URL 参数,如 in this fiddle here .

关于javascript - 单元测试没有失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45734080/

相关文章:

javascript - JQuery 点击处理程序

javascript - 使用 Highcharts 格式化程序导致无法读取未定义的属性 'length'

javascript - JSON 对象中不可预测的层次结构

c# - 如何正确地对该方法进行单元测试?

c# - 使用内存中的 sql lite 单元测试流利的 nhibernate 存储库 - 没有这样的表错误

javascript - 解析: Cloud JS code vs Swift does not produce the same results

javascript - 将长文本拆分为字符串数组

unit-testing - 助手 Ember-cli 的单元测试

asp.net - 如果使用 ASP.Net session 状态,AJAX 调用是否在服务器上以串行方式处理?

ajax - 使用 success/jsonpCallback 与 ajax 请求