Вот сценарий, который я пытаюсь проверить:тестирование с жасминовым узлом
Зарегистрированный пользователь изменяет атрибут 'module' 'desc'. Я не использую какую-либо базу данных для хранения «модуля», она определяется в файле, который я требую.
Вот тестовый код, который не работает:
первый у меня есть функция помощника для входа: //app.spec.js
var login = function(done) {
var options = {
uri: 'http://localhost:3000/login'
, method: 'POST'
, form: {
username: 'user'
, password: 'ffff'
}
}
request(options, function() {
done();
});
};
и тест:
it('should be able to change desription of a module', function(done){
login(done);
var options = {
uri: 'http://localhost:3000/module/1'
, method: 'POST'
, form: {
desc: 'test'
}
}
request(options, function(err, res, body){
var modules = require('../Model/module').modules;
console.log(modules);
expect(modules[0].desc).toBe('test');
done();
});
});
И наконец,
//app.js
app.post('/module/:module_id', ensureAuthenticated, function(req, res) {
var desc = req.body['desc'];
if(req.module_id){
findModuleById(req.module_id, function(err, module) {
module.desc = desc;
console.log('changed module');
console.log(module);
});
}
res.redirect('/');
});
Проблема в том, что когда я делаю console.log (modules) из app.post, он показывает, что desc теперь является «test», но мой тест терпит неудачу, потому что он по-прежнему показывает значение по умолчанию.
Я новичок в том, чтобы выразить/узел и не знаю, как правильно написать эти виды тестов. Любой намек был бы оценен.
P.S. Модули:
//Model/module.js
var modules = [
{id: 1, desc: 'Default description for module 1'}
, {id: 2, desc: 'Default description for module 2'}
, {id: 3, desc: 'Default description for module 3'}
];
module.exports.modules = modules;