首页 文章

如何在Angular 2业力茉莉花测试中从JSON文件加载模拟数据?

提问于
浏览
6

我为 angular 2 写了 karma jasmine 测试用例,

我们遇到了在单独的JSON文件中模拟数据的要求,因为数据很大(想要确保代码清洁) . 为此,我搜索了很多,但没有找到适当的解决方案 .

我们已经使用 MockBackend 模拟HTTP服务,所以我们不能使用angular的HTTP服务加载JSON,因为它最终请求将转到MockBackend .

那么有没有其他方法可以不使用任何第三方库,如jasmine-jquery或Karma-jasmine-preprocessor? More kind of Angular JS 2 way .

2 回答

  • 17

    我遇到过同样的问题!

    最后,我意识到只在TypeScript中直接使用 require() 函数就可以了 . 它受Node和@ types / node支持,否则有些需要声明require类型 .

    因此,要在Angular 2 Karma Jasmine测试中从JSON文件加载模拟数据,请转到:

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

    PS:credits to Artur Ampilogov

  • 0

    我正在尝试做同样的事情,如果你像这样传递JSON的路径,system.import就可以了

    例如:

    `System.import('../../assets/mock-data/mock-data.json')
    .then((json) => {
    console.log(json);
    });`
    

    真正奇怪的是,我没有设法让它与变量一起工作 . 例如:

    `let myUrl: string = '../../assets/mock-data/mock-data.json';
        System.import(myUrl)
        .then((json) => {
            console.log(json);
        });`
    

相关问题