我正在尝试测试以下代码:
/** 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不是函数”。
我想知道它是否可能与调用原型'get'中的变量有关,但我想我已经看过这样的例子,他们命名javascript类并使用他们调用get的自定义方法。它似乎适用于其他电话。
你对这次电话不起作用有什么建议吗?
答案 0 :(得分:4)
错误完全正确。
您定义了MyResult.prototype.get
,与MyResult.get
无关。
您可能想要创建一个实例。
答案 1 :(得分:1)
这是原型功能
所以你必须用这样一个对象的实例来测试get
函数:
it('should have a placeholder for get', function(){
var resultObj = new MyResult(); // Create an instance of your object
expect(function(){return resultObj.get(123);}).toThrowError(NotImplementedError);
});