こっちでもmockの話を書いた。
www.tohuandkonsome.site
以下のように、1ファイル内に、複数の関数があり、login
のみmockにしたい場合。
firebase.js
export const login = () => {
};
export const logout = () => {
};
以下のようにjest.requireActual
を使えばいける。
テストコード
import { login as mockLogin } from '../../firebase';
jest.mock('../../firebase', () => ({
...jest.requireActual('../../firebase'),
login: jest.fn()
}));
test('特定のmoduleのみmockにした', () => {
fireEvent.click(LoginButton);
expect(mockLogin).toHaveBeenCalled();
})
テスト対象のコンポーネントが、上記login
とlogout
を両方使っていて、片方だけmockにしない状況ってあんまなさそうだけど。
2019/08/07 追記
一部をモックしたいならjest.spyon
で対象の関数のみmockの実装をかけばいい。