尝试使用间谍时未定义

Undefined when trying to use Spy

使用我的代码:

    it('should start application only once', function(done){
        var spy = sinon.spy(server, 'startup');

        var calledOnce = spy().calledOnce;

        calledOnce.should.be.true;

        done();
    });

我收到错误:

Cannot read property should of undefined.

calledOnce 变量未定义。我在如何设置和使用间谍方面做错了。我该如何解决这个问题?

Startup 是我从 server.js 文件导出的对象中的一个方法。

如果您想查看某个特定的 function/method 是否已被调用,您需要在 它被调用之前 对其进行监视(否则间谍不会知道关于它):

var server = ...
var spy    = sinon.spy(server, 'startup');

server.startup(...);

spy.calledOnce.should.be.true;