我无法测试在我的主干视图中渲染的元素的可见性
I can't test the visibility of elements rendered in my backbone view
我正在开发一个 Backbone.js 应用程序,在使用 Jasmine & Sinon 添加测试时,我在确定某些 DOM 元素的可见性时遇到了问题:其中一些元素在测试中被检测为不可见,而我可以在我的应用程序中正确看到它们。
我创建了一个复制问题的小示例,相同的测试在两组元素上运行两次:
- 第一个集合直接存在于 SpecRunner 中.html
- 第二个已呈现为主干视图
测试本身使用jQuery.is(':visible')
(通过jasmine-jquery的.toBeVisible()
)来知道元素是否可见。它通过第一组,而不是第二组。
我在这里将代码共享为github项目:https://github.com/maximevaly/3789_js
我想我忘记了什么,或者可能滥用了图书馆,但我不能把手指放在上面,所以如果你有任何线索...... :)
谢谢!马克西姆
问题是您的StuffView.el
未附加到 DOM,因此始终不可见。您可能误解了className
和tagName
参数:它们不是用作选择器,而是用于构造一个全新的元素。
这将修复第二个测试。
el : "div.container",
//tagName : 'div',
//className : 'container',
或者,您可以在测试中手动将视图附加到 DOM
$("body").append(this.view.el);
相关文章:
- 在MVVM视图模型中处理应用程序范围的元素
- UI5:如何访问视图中定义的html元素
- 聚合物:在不同的视图模型中多次使用元素
- 滚动所有嵌套的滚动条,使HTML元素进入视图
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- jqmobile列表视图中元素之间的间距相等
- 来自Svc的数据未建模到视图元素AngularJS中
- 使用美丽汤获取“视图元素”代码,而不是“查看源代码”代码
- 如何在主干视图元素上注册事件
- 如何动态创建主干视图元素
- AngularJS控制器-与视图元素交互
- 如何在javascript中处理部分视图元素
- 链接Ember控制器到视图/元素
- 骨干.木偶视图元素初始化位置
- 如何从控制器中调用视图元素
- 在parent-view's元素中添加子视图元素
- JQuery移动列表视图元素消失
- 如何设置模型值与视图元素文本在javascript (MVC 4)
- 聚合物1.0列表视图元素的示例
- AngularJS - 从其关联的控制器按 Id 访问视图元素