1
У меня есть этот код, который я хочу, чтобы тест:не может получить доступ/вызвать .then с обещания в единичном испытании
public renderPage(page: number) {
return this.pdfVar.getPage(page).then((page: any) => {
console.log('PAGE', page);
let viewport = page.getViewport(1);
let container = this.element.nativeElement.querySelector('div');
let canvas: HTMLCanvasElement = document.createElement('canvas');
if (!this.originalSizeVar) {
viewport = page.getViewport((this.element.nativeElement.offsetWidth * 1)/(viewport.width * 1));
}
if (!this.showAllVar) {
this.removeAllChildNodes(container);
}
container.appendChild(canvas);
canvas.id = 'pdfCanvas';
canvas.height = viewport.height;
canvas.width = viewport.width;
let context = canvas.getContext('2d');
page.render({
canvasContext: context,
viewport: viewport
});
});
Это мой тест:
it('render page',
inject(
[
PdfViewerComponent
],
(
component: PdfViewerComponent
) => {
component.pdfVar = mockPdfVar;
let something = component.renderPage(2);
something.then((data) => data());
}
)
);
Моего отчет охват говорит обратный вызов расположенный в. то никогда не выполняется. Я пробовал разные вещи, но функция обратного вызова никогда не выполнялась. Как я могу запустить эту часть?
Angular2 версия: RC5 радиально-CLI версия: webpack.2
Я добавил эту строку в свой тест, но это не срабатывает. Я боюсь. –
Я не знаю, какую версию Angular2 вы используете, и каков нынешний способ их использования. Это изменилось почти с любым обновлением. Попробуйте дополнительно «вставить» 'async? например, 'async (inject (...))' –
Я отредактировал OP с версией, async не выполнил трюк:/ –