单元测试没有失败

时间:2017-08-17 11:37:34

标签: 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网址: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网址错误。测试正在过去。

1 个答案:

答案 0 :(得分:1)

删除间谍功能并添加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

但这导致实际通话。要防止调用发生,请使用您的间谍功能并解析URL参数,如in this fiddle here