Я новичок в шутке, и я пытаюсь вызвать функцию ожидания, она возвращает обещание. Но я получаю и ошибка, как ожидаемые вызовы 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 \ компоненты \ заказ-управление-несколько-диалогов-приложение-приложение \ порядок-управления-несколько-ба 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();
});