モジュール内でメソッド/関数が起動されたかどうかを確認する方法がわかりません。 これは私の例である:NodeJsモジュール/アプリケーションをテストするためにJestでスパイを使用する方法
db.js
module.exports.saveUser = (user) => {
console.log('Saving the user', user);
};
app.js
let db = require('./db');
module.exports.handleSignup = (email, password) => {
db.saveUser({ email, password });
}
app.test.js
const db = require('./db');
jest.genMockFromModule('./app');
const app = require('./app');
describe('App: ',() => {
it('should call "db.saveUser" with a user object',() => {
let dbSpy = jest.spyOn(db, 'saveUser');
const user = { email: '[email protected]', password: 'abc123' };
app.handleSignup(user.email, user.password);
expect(dbSpy).toBeCalled();
});
});
このテストを実行すると、saveUser()で書かれたconsole.logがシェルから見えるので、db.saveUser()が起動していて、JestがsaveUser()をモックアップしていないことを意味します。 私は何が間違っていますか?ここで与えられた手動のモックの例を参照