Я тестирую файл действий в потоке с шуткой и, кажется, не могу понять, как имитировать в нем возвращаемое значение.
Когда я указываю возвращаемое значение (см. Код ниже) для фиктивного модуля в моем тестовом файле, все работает нормально, но когда эта же функция вызывается в модуле, который я тестирую, он оказывается неопределенным.
#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?