オブジェクト。Angular2 +ジャスミンのイベントは、私がテストする必要があり、この単純な方法を持っている
it('should close on info container click',() => {
spyOn(component, 'onLayerContainerClick');
const el: DebugElement = fixture.debugElement.query(By.css('.dpm-info__layerContainer'));
el.triggerEventHandler('click', null);
expect(component.onLayerContainerClick).toHaveBeenCalled();
});
テストはOKですが、instanbulは「機能がカバーされていない」と言う:私がテストした場合、このようなものです。だから私は、関数を明示的に呼び出す必要があると思いますか?そのためには、(少なくとも)srcTargetプロパティを含む完全なイベントオブジェクトが必要です。単体テスト内でこのようなイベントを定義するにはどうすればよいですか?
挑戦はtです彼は、引数 'onLayerContainerClick'に渡された引数が' Event'型であると期待しているTypescriptです。 'srcTarget'プロパティでオブジェクトを渡すだけでは、それをカットしません - タイプエラーが発生します。 – pop
OK、各テストの開始時に 'beforeEach'も投稿できますか? btw、component.onLayerContainerClickを試してみると( {srcElement:{value: 'mock_value'}});またはエラーが発生しますか? –
DrNio
@pop挑戦ではありません。タイプは、あなたを助けるためのものであり、障害物を作り出すものではありません。 ' arg'や' arg'で必要な引数を渡すことができます。 –
estus