2016-10-07 32 views
0

我有以下的單元測試:茉莉花.toHaveBeenCalledTimes拋出「undefined是不是構造」錯誤

describe('shouldDeleteLogos',() => { 
    beforeEach(() => { 
     productService.product.project.parts['Logo'] = { 
     name: 'Logo' 
     }; 
     productService.product.project.parts['Accent'] = { 
     name: 'Accent' 
     }; 
    }); 

    it(`should only call deleteLogos once if the part was provided to the method`,() => { 
     let part: Part = new Part(); 
     part.name = 'Logo'; 
     spyOn(creationSpacePSTLInstance, 'deleteLogos'); 
     creationSpacePSTLInstance.shouldDeleteLogos(part); 
     expect(creationSpacePSTLInstance.deleteLogos).toHaveBeenCalledTimes(1); 
    }); 
}); 

然而,當我跑我得到以下錯誤測試:TypeError: undefined is not a constructor (evaluating 'expect(creationSpacePSTLInstance.deleteLogos).toHaveBeenCalledTimes(1)')

什麼是錯在這裏?我窺探了這個方法,我想測試它只被調用一次。基於文檔,這應該是工作。它只與.toHaveBeenCalled();一起工作,只是不符合時代的說法。

以下是我正在使用的Jasmine和Karma版本。

"jasmine-core": "2.3.4" 
"karma": "0.13.22", 

回答

2

toHaveBeenCalledTimes()Jasmine 2.4介紹。如果升級,那應該修復它。