2016-08-23 4 views
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()); 

     } 
    ) 
); 

マイカバレッジレポートは、コールバックを言います.thenに位置することは決して実行されません。 私は様々なことを試みましたが、コールバック関数は決して実行されません。 この部分をどのようにトリガーできますか?

Angular2バージョン:RC5 角度-CLIのバージョン:webpack.2

答えて

0

あなたが完了するために、あなたのテストを待つことができるようにテストランナーのための

return something.then((data) => data()); 

が必要になる場合があります。

+0

私のテストでこの行を追加しましたが、それは私が恐れていることを引き起こしません。 –

+0

Angular2のどのバージョンを使用しているのかわかりません。これはほぼすべてのアップデートで変更されました。 'asyncで' inject'をさらにラップしてみてください。 'async(inject(...) 'のように) –

+0

私はバージョンを使ってOPを編集しましたが、非同期でもそのようなことはしませんでした=/ –

関連する問題