Chai和间谍没有用好的args打电话

时间:2016-06-07 06:51:32

标签: javascript node.js testing chai

我正在测试一个我需要测试一些回调行为的应用程序。

我已经隔离了回调并尝试制作可测试的东西。

我有这两个功能:

const callbackRender = (httpResponse, response) => {
  if (httpResponse.content.content) response.send(httpResponse.content.content)
  else response.render(httpResponse.content.page)
}

const callback = (injector, route) => {
  return (request, response) => {
    const ctrl = injector.get(route.controller)
    const httpResponse = ctrl[route.controllerMethod](new HttpRequest())
    callbackRender(httpResponse, response)
  }
}

我失败的测试如下:

  it('should call the callback render method when httpResponse is not a promise', () => {
      const mock = sinon.mock(injector)
      const ctrl = new UserControllerMock()
      const routes = routeParser.parseRoutes()
      mock.expects('get').returns(ctrl)
      const spy = chai.spy.on(callbackRender)
      callback(injector, routes[1])(request, response)
      const controllerResult = ctrl.getAll(new HttpRequest())
      expect(spy).to.have.been.called.with(controllerResult, response)
      mock.verify()
      mock.restore()
    })

问题发生在未被调用的间谍上。

但是当我记录预期的结果时,如果我在callbackRender中记录我作为参数传递的内容,那么我有完全相同的JSON对象。

这是柴:

  

AssertionError:使用[Array(2)调用预期的{Spy}   ]

0 个答案:

没有答案