qunit如何测试ajax调用

时间:2014-01-27 16:59:29

标签: json mocking qunit

刚刚发现了Qunit,我正在为第一次写一些测试。现在这可能是一个奇怪的问题,但是这里有。如果我有一个从文件中读取json数据的函数,我该如何测试它?我可以按建议here模拟实际的getJSON。  但这不会打败测试的目的吗?我的意思是文件可能丢失,空,填充无效的JSON,...所以如果我模拟getJSON我无法测试。或者我看错了,因为我提供文件所以不应该对这个功能进行测试吗?

function GetJSONFromFile(){
  var fileData;
  $.getJSON( "js/file.json", function(data) {   
    fileData = data;        
  })
  .fail(function(jqxhr, textStatus, error) {
    var err = textStatus + ", " + error;
    console.log(err);
  });   
  return fileData;
}

1 个答案:

答案 0 :(得分:1)

这可以通过mockJax完成:https://github.com/appendto/jquery-mockjax/ 在这里,您可以拦截请求并将其发送到测试json文件。它还允许您返回其他数据类型,因此您可以测试“无效json”问题。

$.mockjax({
  url: '/restful/api',
  proxy: '/mocks/data.json'
});