2016-10-08 103 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