Я новичок в шутках, и я пытаюсь вызвать функцию ожидания, которая возвращает обещание. Но я получаю сообщение об ошибке, например, ожидаемые вызовы 1, а полученные вызовы - 0.
Код:
public async callDataSourceCommand(dialogData: any, RecipeId: string) {
const gridItems = await this.dataSourceService.myPromiseMethod(id, collection);
}
MockData
public get dataSourceServiceMock(): any = {
return {
myPromiseMethod: function () {
return Promise.resolve({
id: '123',
collection: []
});
}
}
}
Набор тестов
it('1. Should execute ', async() => {
const myDialogApp: DialogApp = TestBed.get(DialogApp);
myDialogApp.selectedOrder = selectedOrder;
myDialogApp.RecipeId = Recipe.__id;
myDialogApp.callDataSourceCommand(dialogData, RecipeId);
jest.spyOn(dataSourceServiceMock, 'myPromiseMethod');
expect(dataSourceServiceMock.myPromiseMethod).toHaveBeenCalled();
});
После добавления комментария Шуана я все еще сталкиваюсь с проблемой, например,
console.error node_modules / zone.js / dist / zone.js: 703 Отклонение необработанного обещания: неожиданный токен o в JSON в позиции 1; Зона: ProxyZone; Задача: Promise.then; Значение: SyntaxError: Неожиданный токен o в JSON в позиции 1 в JSON.parse () в OrderManagementMultipleBatchesDialogApp. (D: \ DCS_WorkSpace \ src \ DCSPlus \ UI \ libs \ order-management \ apps \ src \ components \ order-management-multiple-batches-dialog-app \ order-management-multiple-ba tches-dialog-app.factory .ts: 102: 30)
я обновил тестовый пример
MockData
public get dataSourceServiceMock(): any = {
return {
myPromiseMethod: function () {
return Promise.resolve({
selectedOrder: {
earlierStartTime: '2/5/2020',
__id: 'orderId123'
},
batchCollection: {
__id: 'b1order 1',
masterRecipeName: 'New recipe_V1.0',
plannedQuantity: '3',
masterRecipeId: 'ns=6;s=4/ProjectData/1',
actualQuantity: '1',
description: 'batchDesc',
}
});
}
}
}
Набор тестов
it('1. Should execute ', async() => {
const myDialogApp: DialogApp = TestBed.get(DialogApp);
myDialogApp.selectedOrder = selectedOrder;
myDialogApp.RecipeId = Recipe.__id;
jest.spyOn(dataSourceServiceMock, 'myPromiseMethod');
await myDialogApp.callDataSourceCommand(multipleBatchData, masterRecipeId);
expect(dataSourceServiceMock.myPromiseMethod).toHaveBeenCalled();
});
myDialogApp.callDataSourceCommand(dialogData, RecipeId);
, который не ожидается - вы уверены, что знаете, как использовать async / await? - person Jaromanda X   schedule 27.02.2020