使用Jest模拟对象数组

时间:2018-07-24 23:59:52

标签: typescript mocking jestjs jest-preset-angular

我试图用Jest为角度应用程序中的服务编写单元测试,但我对如何模拟数据存在疑问。作为我的模拟数据的一部分,我需要模拟Array<App>,它具有这样的界面

    interface App  {
        Color: string;
        Id: string;
        Size: TileSize;
        Text: string;
        Title: string;
        Url: string;
    }

so I tried to mock the data like this in my test file:
const Apps: Array<App> = [
        {
            'Id': 'Chat',
            'Text': 'Chat',
            'Title': 'Go to your chat',
            'Url': 'https://chat.com'
        },
        {
            'Id': 'Mail',
            'Text': 'Mail',
            'Title': 'Go to your Mail',
            'Url': 'https://mail.com'
        }
    ];

MockConfigParserService.mockImplementation(() => {
        return {
            parse: () => {
                return {
                    workloads
                };
            }
        };
    });

我的测试由于抛出此错误而无法运行我正在测试的服务

 Unhandled Promise rejection: workloads.slice is not a function ; Zone: ProxyZone ; Task: Promise.then ; Value: TypeError: workloads.slice is not a function

在服务代码中的这一行代码(该服务在测试范围之外可以正常工作):return this.appsPromise.then(apps => [...apps]);

我应该如何更改应用程序数组的模拟数据,以免引发此错误? 非常感谢

0 个答案:

没有答案