sinon stub一个在另一个函数上被调用的函数

时间:2018-06-10 12:26:08

标签: javascript node.js unit-testing express sinon

我正在为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"

任何帮助,我将不胜感激。谢谢!

0 个答案:

没有答案