在 jasmine 的 expect 中使用 jquery 选择器
Using jquery selectors in an expect in jasmine
我注意到你在编写 jasmine 单元测试时通常的格式是:
expect($('#foo')).toHaveValue('#bar');
但最近我无意中发现以下方法也有效:
expect('#foo').toHaveValue('#bar');
这是预期的行为吗?这似乎是一种更好的方式来写我的期望,但我以前从未见过这种符号,我想确保我没有滥用某些东西。
任何人都可以确认这是要走的路或指导我查看任何相关文档吗?
(我用的是jasmine jquery library)
我对此进行了一些尝试。看起来它确实有效,但有一些特殊之处。
我试过类似的东西:
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
的实际值视为选择器。
我注意到你在编写 jasmine 单元测试时通常的格式是:
expect($('#foo')).toHaveValue('#bar');
但最近我无意中发现以下方法也有效:
expect('#foo').toHaveValue('#bar');
这是预期的行为吗?这似乎是一种更好的方式来写我的期望,但我以前从未见过这种符号,我想确保我没有滥用某些东西。
任何人都可以确认这是要走的路或指导我查看任何相关文档吗?
(我用的是jasmine jquery library)
我对此进行了一些尝试。看起来它确实有效,但有一些特殊之处。
我试过类似的东西:
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
的实际值视为选择器。