0

我有一个承诺,它检查我是否被授权(返回真或假)。在该承诺中,当授权为假时,我还将 403 statusCode 添加到我作为参数传递的响应对象中。我正在用 chai-as-promised 测试我的承诺的结果,但我没有设法找到一种方法来在承诺解决后也测试响应的状态代码。

var result = authorizePromise(request, response);
return expect(result).to.eventually.equal(false).and(response.statusCode.should.be(403));
4

1 回答 1

1

响应应在父范围内使用。
并且断言应该在promise准备好之后调用,
所以它应该是一个在之后调用的函数。
您的代码示例.and(response.statusCode.should.be(403));立即运行断言,并将其作为参数传递给.and()它,而不等待承诺。

*您也可以使用.and而不是.then

var response = {};
var resultPromise = authorizePromise(request, response);
return expect(resultPromise).to.eventually.equal(false)
    .then(function(){return response.statusCode.should.be(403)})
于 2016-03-04T14:28:16.037 回答