0

在 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);
        }
    };
    }

如何编写期望调度抛出异常的测试?

我正在监视动作处理程序而不是经过测试的 ActionDipatcher。我认为监视您正在测试的对象是荒谬的。

4

1 回答 1

1

Jasmine 有一个toThrow匹配器,允许您测试异常。你可以像这样使用它:

it("throws", function() {
  var dispatcher = new ActionDispatcher();
  expect(function() {
    dispatcher.dispatch({constructor: 'constructor'});
  }).toThrow(new Error('not handler for action: constructor'));
});
于 2014-01-26T20:36:22.663 回答