测试jasmine中的事件调用的操作

时间:2015-07-26 22:59:57

标签: javascript jasmine

Basicaly我必须测试是否实际调用了应该由事件调用的动作(如果事件被触发,则不会)。例如,我想测试是否在foo事件上调用了一些方法obj.bar

emitter.on('foo', function() { obj.bar(); });

obj当然对bar方法有间谍。我已经尝试通过obj.bar调用.and.callFake时调用完成回调,但它不起作用,它表示根本没有调用obj.bar。实际代码如下所示(我使用的是ES6)

it('rejects invalid packet', done => {
    let packet = client.fake('system/login', { // fakes incoming packet by calling proper event.
        email: 'nope@test.dev'
    });

    client.reply.and.callFake(() => done());

    expect(client.reply).toHaveBeenCalledWith(packet, 'system/login', {
        code: ResponseCode.INVALID_PACKET
    });
});

如何正确确保在事件(或任何其他异步方法)上调用间谍?

0 个答案:

没有答案