在 node.js 中使用 sinon 的摩卡存根
mocha stub using sinon in node.js
我想知道我是否遗漏了关于 sinon.js 的任何内容我尝试使用 sinon.stub().returns 和产量但无法得到结果.任何指针都会有所帮助
我有一个模块调用另一个模块return来自数据库的值
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 到 return 的存根时,如果(用户)条件,控件不会出现在我的 else 中。
我的单元测试用例如下
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();
};
};
所以我浏览了 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();
};
};
我想知道我是否遗漏了关于 sinon.js 的任何内容我尝试使用 sinon.stub().returns 和产量但无法得到结果.任何指针都会有所帮助
我有一个模块调用另一个模块return来自数据库的值
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 到 return 的存根时,如果(用户)条件,控件不会出现在我的 else 中。
我的单元测试用例如下
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();
};
};
所以我浏览了 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();
};
};