weixin_33674437 2017-08-17 11:37 采纳率: 0%
浏览 29

单元测试没有失败

I am trying to write unit test cases, for web API call.

Which shows success below :

Success Unit Test (jsfiddle)

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

Error Unit Test (jsfiddle) But still its shows "pass"

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

Previous right webapi url : https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

Wrong wepapi url : https://sdfsdfdfmaps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

Even though the wepapi url is wrong. Test is passing.

  • 写回答

1条回答 默认 最新

  • weixin_33735676 2017-08-17 11:47
    关注

    Remove the spy function and add a fail callback which raises an error if the ajax call failed like so:

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

    See this fiddle here.

    But this causes an actual call. To prevent the call from happening, use your spy function and parse the URL argument like in this fiddle here.

    评论

报告相同问题?