2017-04-17 8 views
0

私はAngular 2プロジェクトを持っています。そのプロジェクトでは、Angulartics npmパッケージをインポートし、それを私のコンポーネントの1つに注入しました。 私のコンポーネントでは、私は既存の単体テストを模擬する必要がある単一の呼び出しを行っています。AngularticsのネストしたオブジェクトのJasmine Mock

  1. beforeEachでこれを追加しました::

    mockAngulartics2 = jasmine.createSpyObj<Angulartics2>('angulartics2', ['eventTrack']); 
    
  2. プロバイダにこれを追加しました:

    { provide: Angulartics2, useValue: mockAngulartics2 }, 
    
私は次のことを行っている私のテストspecファイルで

this.angulartics2.eventTrack.next({ action: 'Track my event'}); 

テストを実行すると、次のエラーが返されます。 angulartics2.eventTrack.nextオブジェクトを模擬する正しい方法は何ですか?

TypeError: undefined is not a constructor (evaluating 'this.angulartics2.eventTrack.next({ action: 'Track my event' })') in config/spec-bundle.js (line 145931)

答えて

1

nextへの呼び出しについて不平を言います。 eventTrackのスパイオブジェクトを正しく作成しましたが、nextのスパイオブジェクトは作成していません。だから、1の間で)と2)、あなたが行うことができます、感謝を

mockAngulartics2.eventTrack = jasmine.createSpyObj('angulartics2', ['next']);

私はAngulartics2をあざける問題があった、あなたは正しい道に導いてくれる、そう!

関連する問題