我正在为ExpressJS编写单元测试,然后调用API端点。 目前,我试图使用存根函数来返回我想要的值。 这是我的代码
路线:
this.router.get('/pepe', registerController.yow);
控制器:
public yow = async(req: Request, res: Response) => {
try {
const name = 'John';
const make = this.someFunc(name);
console.log(make);
res.json(make)
} catch (err) {
}
}
public someFunc(name: string) {
return { name: 'github' };
}
测试:
const registerController = new RegisterController();
describe('the express app', () => {
it('yo', done => {
const someStub = sinon.stub(registerController, 'someFunc')
someStub.returns({ name: 'StackOverflow' })
someStub();
request(server)
.get('/api/pepe')
.end((err: any, response: any) => {
console.log(response.body.name)
done();
someStub.resetBehavior();
})
})
})
当我点击API端点时,它会触发" yow"函数,在函数内部,调用" someFunc"返回一个Object。我正在捣乱" someFunc"返回{ name: 'StackOverflow' }
,但我得到的回复仍为"github"
任何帮助,我将不胜感激。谢谢!