1
我正在測試一個動作文件,並且不知道如何嘲笑它的返回值。如何在另一個文件中模擬返回值?
當我在我的測試文件中爲模擬模塊指定返回值(請參閱下面的代碼)時,一切正常,但是當我測試的模塊中調用了相同的函數時,它會以undefined的形式出現。
#MissionActions-test.js
jest.dontMock('../MissionActions');
describe('MissionActions', function() {
var GameStore = require(root + 'stores/game/GameStore');
var MissionActions;
beforeEach(function() {
MissionActions = require('../MissionActions');
});
it('should...', function() {
GameStore.getGame.mockReturnValue({test: "test"});
console.log(GameStore.getGame()); // prints {test : "test"}
MissionActions.addMissionFromBank();
});
});
和正在測試的MissionActions.js。
# MissionActions.js
var GameStore = require('../../stores/game/GameStore');
var MissionActions = {
addMissionFromBank: function(bankMission) {
var game = GameStore.getGame();
console.log(game); // prints undefined
}
}
module.exports = MissionActions;
我的API &自動嘲諷的解釋是,一個嘲弄模塊上設置mockReturnValue(在這種情況下GameStore)適用於整個測試,而不僅僅是測試文件中。
我該如何去嘲諷GameStore.getGame()方法,以便它適用於MissionActions.js中?
哇,非常感謝。我不敢相信這很簡單。 –
不,這不簡單。我在測試中遇到了同樣的問題。如果你使用進口巴貝爾這個東西是一個殺手。在我看來,Jest在文檔中缺少很多細節。無論如何@Crob良好的迴應。 – Mihai