Sinon.js嘲笑不识别方法

时间:2016-10-08 18:16:10

标签: typescript mocking sinon

我目前正在使用带有mocha的sinonjs作为测试框架。我试图嘲笑一个班级,但它似乎没有认识到这些方法。

示例:

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创建一个模拟,然后说它希望在mock上调用function1。我不确定为什么它无法找到function1作为一个函数。

任何建议表示赞赏, 谢谢, d

1 个答案:

答案 0 :(得分:1)

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

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