我无法测试在我的主干视图中渲染的元素的可见性

I can't test the visibility of elements rendered in my backbone view

本文关键字:视图 元素 可见性 测试 我的      更新时间:2023-09-26

我正在开发一个 Backbone.js 应用程序,在使用 Jasmine & Sinon 添加测试时,我在确定某些 DOM 元素的可见性时遇到了问题:其中一些元素在测试中被检测为不可见,而我可以在我的应用程序中正确看到它们。

我创建了一个复制问题的小示例,相同的测试在两组元素上运行两次:

  • 第一个集合直接存在于 SpecRunner 中.html
  • 第二个已呈现为主干视图

测试本身使用jQuery.is(':visible')(通过jasmine-jquery的.toBeVisible())来知道元素是否可见。它通过第一组,而不是第二组。

我在这里将代码共享为github项目:https://github.com/maximevaly/3789_js

我想我忘记了什么,或者可能滥用了图书馆,但我不能把手指放在上面,所以如果你有任何线索...... :)

谢谢!马克西姆

问题是您的StuffView.el未附加到 DOM,因此始终不可见。您可能误解了classNametagName参数:它们不是用作选择器,而是用于构造一个全新的元素。

这将修复第二个测试。

el : "div.container",
//tagName : 'div',
//className : 'container',

或者,您可以在测试中手动将视图附加到 DOM

$("body").append(this.view.el);