2016-10-08 77 views
0

我目前正在使用与mocha为测试框架的sinonjs。我试图嘲笑一门课,但它似乎没有认识到这些方法。Sinon.js嘲笑无法识别方法

例子:

module ModuleA{ 
    export class ClassA { 
     public funciton1() { 
       //do something 
     } 
    } 
} 

it.only("test1", function() { 
    var sandbox = sinon.sandbox.create(); 
    var mockClassA = sandbox.mock(ModuleA.ClassA); 

    mockClassA.expects("function1").once(); 
    mockClassA.function1(); 
}); 

然而,它抛出一个异常

TypeError: Attempted to wrap undefined property function1 as function 

我是新来sinonjs所以我可能会错误地使用它一个很好的机会。 Function1在ClassA中定义,所以代码为ClassA创建一个模拟,然后说它期望在模拟上调用function1。我不知道为什么它找不到function1作为函数。

任何意见理解, 谢谢, d

回答

1

mock方法将对象作为参数的实例,要传递函数(类声明)。使用new关键字创建实例:

var mockClassA = sandbox.mock(new ModuleA.ClassA()); 
+0

没有意识到存根类需要包装对象的实例。谢谢 – darewreck