Javascript 如何指示在JasmineJS中从方法内部抛出异常?
在Junit测试中,我可以期望在测试中抛出一个异常,如下所示:Javascript 如何指示在JasmineJS中从方法内部抛出异常?,javascript,bdd,jasmine,Javascript,Bdd,Jasmine,在Junit测试中,我可以期望在测试中抛出一个异常,如下所示: @Test(expect=SomeExceptino.class) public void shouldThrowException(){ //test goes here. } 我怎样才能用JS和Jasmine做到这一点 我有点像: function ActionDispatcher() { var actionHandlers = {}; this.dispatch = function (action)
@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);
}
};
}
如何编写期望分派引发异常的测试
我在监视action Hanlders,而不是经过测试的ActionDipatcher。我认为监视你正在测试的物体是荒谬的 Jasmine有一个
toThrow
匹配器,允许您测试异常。您可以这样使用它:
it("throws", function() {
var dispatcher = new ActionDispatcher();
expect(function() {
dispatcher.dispatch({constructor: 'constructor'});
}).toThrow(new Error('not handler for action: constructor'));
});
试着用Try,捕捉函数中的语句。这是一个好主意,我现在就试试。我认为这可能会有所帮助。这真的奏效了。非常感谢。请发表一个答案,让我投赞成票。事实上不是这样!我想我得再检查一下。好的时候我会通知你:D