我有一个非常基本的问题。如何检查一个方法是否在使用茉莉花的对象中定义?到目前为止,我有:茉莉花 - 测试对象中未定义的方法
expect(obj.method).not.toBeUndefined();
但是,该报告无助地指出:
'Expected undefined not to be undefined.'
这将是巨大的,如果,在某种程度上,它可以告诉我,我试图寻找在报告中的属性的名称。
任何意见赞赏!
我有一个非常基本的问题。如何检查一个方法是否在使用茉莉花的对象中定义?到目前为止,我有:茉莉花 - 测试对象中未定义的方法
expect(obj.method).not.toBeUndefined();
但是,该报告无助地指出:
'Expected undefined not to be undefined.'
这将是巨大的,如果,在某种程度上,它可以告诉我,我试图寻找在报告中的属性的名称。
任何意见赞赏!
的JS引擎评估obj.method
之前,甚至传递到expect
功能。因此,无法从匹配器内恢复字符串"method"
。
你应该write your own matcher将方法名称作为字符串类型的参数。
喜欢的东西
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();
});
不知道如何真正纽带茉莉。 – backdesk
@Crungmungus你用JavaScript写你的单元测试吗? – alex