8

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

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

  • 第一组直接存在于 SpecRunner.html
  • 第二个已呈现为 Backbone 视图

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

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

我想我忘记了什么,或者可能误用了一个图书馆,但我不能指望它,所以如果你有任何线索...... :)

谢谢!马克西姆

4

1 回答 1

9

问题是您StuffView.el没有附加到 DOM,因此始终不可见。className你可能对参数有误解tagName:它们不是用作选择器,而是用来构造一个全新的元素。

这修复了第二个测试。

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

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

$("body").append(this.view.el);
于 2012-06-07T16:54:11.943 回答