使模块加载JSON Karma AngularJS



我有一个在AngularJS中构建的项目,我想使用Jasmine和Karma添加单元测试。每次我尝试运行测试时,我都会得到"实例化模块失败",因为在源代码中,我使用XMLHttpRequest加载了一个本地json文件,但在测试中,相同的函数会以404响应。json是一个配置文件,因此如果没有加载,所有应用程序都无法正确加载。我尝试使用$httpBackend捕获GET请求,并使用自定义json进行应答,但$httpBackend似乎无法捕获该请求。

编辑

我认为这个的问题是一样的

您可以通过使用require()函数提取JSON文件中的模拟数据:

const data: any = require('../../assets/sample-data.json');

现在您应该能够在测试中使用data对象了。或者,您可以将json数据转换为Angular服务(实际上Angular常量可以工作(。然后我的外部文件将很容易在测试中获取,例如:

var setupData = $injector.get('SampleData');
$httpBackend.whenGET('/my-service-url').respond(SampleData);
$httpBackend.flush();

相关内容

  • 没有找到相关文章

最新更新