3

我正在尝试使用 Jest 为 Angular 应用程序中的服务编写单元测试,并且我有一个关于如何模拟数据的问题。作为我的模拟数据的一部分,我需要模拟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]);

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

4

0 回答 0