2017-11-17 12 views
1

にスローされたとき、私は、次のJSクラスを持って合格しないユニットテストはエラーが

test('Non string event fails',() => { 
    expect(MyDispatcher.subscribe(3, 'myHandler')).toThrow(); 
}); 

問題は、私が実行したときにということですテスト、それはこのエラーで失敗します:

● myDispatcher › Non string event fails 

    eventName must be a string 

     at MyDispatcher.subscribe (src/modules/MyDispatcher.js:10:7) 
     at Object.<anonymous> (src/modules/__tests__/MyDispatcherTest.js:26:31) 

私はテストが失敗する理由を理解できません。このメソッドはエラーをスローします。これはまさに私がテストしているものです。したがって、テストは合格するはずですか?

また、私は、このテストを試してみました:

expect(MyDispatcher.subscribe(3, 'myHandler')).toThrowError('eventName must be a string'); 

と、このテスト:

expect(MyDispatcher.subscribe(3, 'myHandler')).toThrow(new Error('eventName must be a string')); 

しかし、どちらも同じエラーメッセージが表示されて失敗。

これらのテストが失敗する理由は何ですか?

答えて

1

MyDispatcher.subscribe(3, 'myHandler')関数呼び出しでも、実際のテストを実行する前に例外をスローして、ポイントをだ

expect(() => MyDispatcher.subscribe(3, 'myHandler')).toThrow(); 
+0

expect(MyDispatcher.subscribe(3, 'myHandler')).toThrow(); 

を交換してください。私は入力が間違っているので、私はエラーを投げることができます。 – octavian

+0

回答が更新されました – Maluen

関連する問題