我有一个非常基本的问题。如何检查是否使用 jasmine 在对象中定义了方法?到目前为止,我有:
expect(obj.method).not.toBeUndefined();
但该报告无益地指出:
'Expected undefined not to be undefined.'
如果它能够以某种方式告诉我我试图在报告中寻找的房产的名称,那就太好了。
任何建议表示赞赏!
我有一个非常基本的问题。如何检查是否使用 jasmine 在对象中定义了方法?到目前为止,我有:
expect(obj.method).not.toBeUndefined();
但该报告无益地指出:
'Expected undefined not to be undefined.'
如果它能够以某种方式告诉我我试图在报告中寻找的房产的名称,那就太好了。
任何建议表示赞赏!
JS 引擎在将其传递给函数obj.method
之前进行评估。expect
因此,无法"method"
从匹配器中恢复字符串。
您应该编写自己的匹配器,将方法名称作为字符串类型的参数。
就像是
expect(obj).toHaveMethod("method");
你能用类似的东西吗...
var validMethod = obj.hasOwnProperty('method')
&& typeof obj.method == 'function';
也许你应该简单地做
it("The 'toBeDefined' matcher compares against `undefined`", function() {
var a = {
foo: 'foo'
};
expect(a.foo).toBeDefined();
expect(a.bar).not.toBeDefined();
});