我试图用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]);
我应该如何更改应用程序数组的模拟数据,以免引发此错误? 非常感谢