0

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

下面显示成功:

成功单元测试(jsfiddle)

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

错误单元测试(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 是错误的。测试通过。

4

1 回答 1

1

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

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

在这里看到这个小提琴

但这会导致实际调用。为防止调用发生,请使用您的 spy 函数并解析 URL 参数,就像这里的小提琴一样。

于 2017-08-17T11:47:10.740 回答