【发布时间】:2017-02-09 19:58:50
【问题描述】:
我对此感到迷茫,我一直在阅读文档,但我无法理解它。
我正在尝试编写一个测试来检查一个方法是否会抛出这样的错误......
it("requires an soCode parameter", () => {
let readyStub = Sinon.stub(objUt, '_executeWhenReady');
expect(objUt.mapStopsAroundHub(undefined, testPostCode)).to.throw("The 'soCode' parameter is required");
readyStub.restore();
});
这失败了,因为它似乎想要函数而不是函数执行 - 我将代码更改如下...
it("requires an soCode parameter", () => {
let readyStub = Sinon.stub(objUt, '_executeWhenReady');
expect(objUt.mapStopsAroundHub).to.throw("The 'soCode' parameter is required");
readyStub.restore();
});
这可以很好地检查第一个参数(因为我现在无法提供任何参数)但我对第二个参数不走运......
it("requires an param2 parameter", () => {
let readyStub = Sinon.stub(objUt, '_executeWhenReady');
expect(objUt.mapStopsAroundHub).to.throw("The 'param2' parameter is required", "VALUE", undefined);
readyStub.restore();
});
(我尝试将参数添加到 throw 调用,但这不起作用 - 我可以看到它不在文档中,所以这并不奇怪)。
然后我想尝试包装函数调用...
it("requires an param2 parameter", () => {
let readyStub = Sinon.stub(objUt, '_executeWhenReady');
expect(() => objUt.mapStopsAroundHub("VALUE", undefined)).to.throw("The 'param2' parameter is required");
readyStub.restore();
});
但这失败了,因为我包装它的函数没有抛出错误。
当然,这样的事情应该非常简单。我做错了什么?
【问题讨论】:
标签: javascript mocha.js chai