我注意到你在编写茉莉花单元测试时通常采用以下格式:
expect($('#foo')).toHaveValue('#bar');
但最近我偶然发现以下内容也有效:
expect('#foo').toHaveValue('#bar');
这是预期的行为吗?这似乎是一个更好的方式来写我的期望,但我以前从未见过这种表示法,我想确定我没有滥用的东西。
有人可以确认这是方法或指导我的任何文件吗?
(我正在使用jasmine jquery library)
答案 0 :(得分:1)
我已经玩了一下。看起来它确实有效,但有一些特点。
我尝试过这样的事情:
expect('.search-form').toBeInDOM();
expect('.search-form').toEqual('div');
expect('.search-form').toContainElement('.search-form__footer');
.not.toBeInDOM();
toContainElement
'.search-form'
可以被视为字符串和选择器。有一个非常简短的源代码看看,看起来像匹配器确实解决了期望实际作为选择器(例如from):
toBeInDOM: function () {
return {
compare: function (actual) {
return { pass: $.contains(document.documentElement, $(actual)[0]) }
}
}
},
虽然我在their docs也找不到任何这种能力的迹象。不过,源代码是源代码)))它说出了它的内容。现在它说它会将expect
的实际值视为选择器。