當我試圖測試下面的代碼錯誤類型的錯誤:測試JavaScript函數
/** ABSTRACT METHOD PLACEHOLDER */
MyResult.prototype.get = throwNotImplementedError;
function throwNotImplementedError(resultId) {
throw new NotImplementedError('Please implement in Item Groups and Items. This call is abstract');
}
與下面的測試。
it('should have a placeholder for get', function(){
expect(function(){return MyResult.get(123);}).toThrowError(NotImplementedError);
});
最後發生的是TypeError被拋出而不是我自定義的NotImplementedError。類型錯誤的消息是:「MyResult.get不是函數」。
我想知道它是否可能與調用原型中的變量有關'獲取',但我想我已經看到這樣的例子,他們命名的JavaScript類和使用他們調用的自定義方法獲取。它似乎適用於其他呼叫。
對於此調用不起作用的原因,您有任何建議嗎?
僅供參考其他任何人。 SLaks和Tao讓我知道原型只適用於實例化的類。爲了能夠將該方法用作「類方法」,我必須排除術語原型,並確保使用名稱來稱呼它。例如聲明它MyResult.get = function(){...};並使用它像MyResult.get(); – ThinkBonobo