【发布时间】:2020-03-20 10:34:56
【问题描述】:
我想用 sinon 为一个使用 ExpressJS 和 Mongoose 的服务的业务逻辑编写测试代码。
我编写了以下测试代码,但findOneService 仅将 id 作为参数并返回具有该 id 的文档。
//service_test.js
const sinon = require('sinon');
// Service
const { findOneService } = require('../services/service');
// Schema
const Post = require('../models/mongoose/schemas/post');
describe('findOneService', () => {
let find;
beforeEach(() => {
find = sinon.stub(Post, 'findOne');
});
afterEach(() => {
find.restore();
});
it('should findOne', async () => {
const id = ???;
...?
});
})
//service.js
exports.findOneDocument = async (id) => {
const result = await Post.findOne({_id: id});
if (!result) {
throw new Error('404');
}
return result;
};
如何定义这个结果以通过测试代码?
【问题讨论】:
标签: express mongoose tdd bdd sinon