我想知道我是否遗漏了关于sinon.js的任何内容我尝试过使用sinon.stub()。返回和收益但是我无法得到结果。任何指针都会有所帮助
我有一个模块,它调用另一个从DB返回值的模块
var users = require('/users');
module.exports.getProfileImage = function (req, res) {
var profile = {};
else {
users.findOne("email", req.session.user.email, function (err, user) {
if (err) {
res.status(400).send();
}
else if (!user) {
//return default image
}
else if (user) {
//Do some other logic here
}
});
};
我使用mocha作为测试框架,我也使用sinon。我面临的问题是当我创建一个users.findOne的存根来返回一个值,如果(用户)条件,控件就不会出现在我的其他地方。
我的单元测试用例如下
describe("Return image of user",function(){
var validRequest = null;
validRequest={
session:{
user:{
email:'testUser@test.com',
role:'Hiring Company'
}
}
};
it("Should return an image from the file if the user is present in db",function(done){
var findOneUserResponse ={
companyName:"xyz",
email:"xyz@abc.com"
};
var findOne = sinon.stub(mongoose.Model, "findOne");
findOne.callsArgWith(1,null,findOneUserResponse);
user.getProfileImage(validRequest,response);
var actualImage = response._getData();
findOne.restore();
done();
};
};
答案 0 :(得分:0)
所以我浏览了sinon.js文档http://sinonjs.org/docs/并找到了我遗漏的内容
describe("Return image of user",function(){
var validRequest = null;
validRequest={
session:{
user:{
email:'testUser@test.com',
role:'Hiring Company'
}
}
};
it("Should return an image from the file if the user is present in db",function(done){
var findOneUserResponse ={
companyName:"xyz",
email:"xyz@abc.com"
};
var findOne = sinon.stub(mongoose.Model, "findOne",function(err,callback){
callback(null,findOneUserResponse);
)};
user.getProfileImage(validRequest,response);
var actualImage = response._getData();
findOne.restore();
done();
};
};