当我试图测试下面的代码错误类型的错误:测试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