Как смоделировать конкретную функцию в объекте с помощью Jest?
Я тестирую приложение React / Reflux, используя Jest. У меня есть следующая функция в магазине:
onLoad: function() {
console.log("ORIGINAL LOAD");
// http request here
}
Я пытаюсь смоделировать это так, чтобы он просто делал то, что ему нужно, без фактических сетевых вещей:
beforeEach(function() {
// mock out onLoad so instead of making API call the store gets test data
PostStore.onLoad = jest.genMockFunction().mockImplementation(function () {
var p1 = new Post(
"54da7df5119025513400000a", // id
"Test Post", // title
"Kji6ftLjUqhElgnqOBqMUKxYONpU7nK/cu6jTA==\n", // owner anonId
"Test Course 1", // course name
"This is a test!", // content
6, // upvotes
2, // downvotes
["Kji6ftLjUqhElgnqOBqMUKxYONpU7nK/cu6jTA==\n"] // voter anonIds
);
this.posts = [p1];
console.log("mocked function");
});
// component initialized here
});
Тем не менее, похоже, что макетная функция даже не создается. Когда я запускаю тесты, консоль все еще регистрируетсяORIGINAL LOAD
.
Как правильно переопределить метод объекта, чтобы вместо установкиposts
массив вPostStore
делая вызов ajax, он просто устанавливает его с тестовыми данными?