在Junit测试中,我可以期待在测试中抛出异常,如下所示:
@Test(expect=SomeExceptino.class)
public void shouldThrowException(){
//test goes here.
}
如何使用JS和Jasmine执行此操作?
我有类似的东西:
function ActionDispatcher() {
var actionHandlers = {};
this.dispatch = function (action) {
var actionHandler = actionHandlers[action.constructor];
if (actionHandler == undefined) {
throw new Error('not handler for action:' + action.constructor);
} else {
actionHandler.handle(action);
}
};
}
如何编写期望派遣抛出异常的测试?
我正在监视行动Hanlders而不是经过测试的ActionDipatcher。我认为窥探你正在测试的对象是荒谬的。
答案 0 :(得分:1)
Jasmine有一个toThrow
匹配器,允许您测试异常。您可以像这样使用它:
it("throws", function() {
var dispatcher = new ActionDispatcher();
expect(function() {
dispatcher.dispatch({constructor: 'constructor'});
}).toThrow(new Error('not handler for action: constructor'));
});