2017-09-09 1 views
0

私はjestでテストしたい次の機能を持っています。呼び出された疑似モック関数が必要です。しかし、それは呼ばれていませんでした。 Jest

import * as pointsAwardingApi from '../api/pointsAwardingApi'; 
export function awardPoints(pointsAwarding) { 
    return function (dispatch) { 
    return new Promise((resolve, reject) => { 
     pointsAwardingApi.awardPoints(pointsAwarding); 
    }); 
    }; 
} 

次に、次のテストを作成しました。

import * as pointsAwardingApi from '../../../src/api/pointsAwardingApi'; 
it("should call award points api",() => { 
    //given 
    pointsAwardingApi.awardPoints = jest.fn(); 
    let dispatcher = pointsAwardingActions.awardPoints({phone: '555'}); 

    //when 
    dispatcher(mockedDispatch); 

    //then 
    expect(pointsAwardingApi.awardPoints).toBeCalledWith({phone: '555'}); 
}); 

ただし、テストを実行すると、次のエラーが発生します。

expect(jest.fn()).toBeCalledWith(expected) 
Expected mock function to have been called with: [{"phone": "555"}] 
But it was not called. 

私はこれがPromiseの問題ですが、私はそれを修正する方法を見つけ出すことはできないと思います。

答えて

0

私はオブジェクトにspyを追加していないことに気付きました。

jest.spyOn(pointsAwardingApi, 'awardPoints'); 
+0

私は 'spyOn'がどのように動作しているかを理解するのに苦労しています。どのオブジェクトにこれを追加しましたか? –

+0

「スパイする」オブジェクトと関数を引数として渡すだけです。次に、その関数を渡す 'expect'を呼び出して、' toBeCalledWith'を使って呼び出されたかどうかを調べることができます。上記の質問を見てください。 – alayor

関連する問題