Я хотел бы высмеять функцию save() модели Mongoose. Функция я хочу тест выглядит в файле под названием user.js:Жасмин spyOn mongoose save
var User = import('User.js')
post: function(req, res) {
var user = new User({
password : req.body.password,
email : req.body.email,
});
user.save(function(err) {
if (err) {
....
} else {
....
}
});
Я попытался написать тест, который выглядит, как это в другой файл под названием user_spec.js:
var Hander = require('user.js')
it('works properly', function() {
spyOn(User, 'save').andReturn(null)
Handler.post(req, res);
});
но что дает мне ошибку:
save() method does not exist
я сделал немного больше выкапывать и она выглядит как сама модель Пользователь не имеет метода сохранения(), экземпляр делает. Это означало бы, что я должен издеваться над конструктором пользователя, но у меня с этим много проблем. Другие сообщения ссылаются на заявление, как:
spyOn(window, User)
, чтобы исправить это, но в NodeJS, глобальный (окно эквивалент здесь), не имеет пользователя, так как я импортировать в качестве переменной. Можно ли издеваться над конструктором, чтобы дать мне что-то с насмешкой save()? Я также рассмотрел модуль npm под названием rewire, но я надеялся, что смогу сделать это без насмешек и замены всего пользовательского модуля в моем обработчике.
здесь не достаточно информации, опубликовать ваш фактический код и тест – user2943490
@ user2943490 С тех пор я добавил код и тест – ritmatter