我无法测试骨干视图中呈现的元素的可见性

时间:2012-06-07 12:00:39

标签: javascript jquery backbone.js jasmine sinon

我正在使用Backbone.js应用程序,在使用Jasmine & Sinon添加测试时,我遇到了一些问题,无法确定某些DOM元素的可见性:其中一些在检测到的时候看不到我看到的在我的申请中正确使用它们。

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

  • 第一组直接出现在SpecRunner.html
  • 第二个已被渲染为Backbone视图

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

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

我想我忘了一些东西,或者可能误用了一个图书馆,但我不能把手指放在上面,所以如果你有任何线索......:)

谢谢! 马克西姆

1 个答案:

答案 0 :(得分:8)

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

这修复了第二次测试。

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

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

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