Ember.js QUnit只测试可见元素与find()

时间:2014-12-29 20:13:25

标签: javascript ember.js qunit

我正在尝试TDD我的第一个Ember应用程序。我想一次显示一个<article>元素。我从服务器上收到了几篇文章。我的展示视图定义isVisible(),以便一次只向用户显示一个<article>

在我的测试中,我想做类似的事情:

equal(find('article').text(), 'foobar');

问题在于它找到所有文章是否可见。

我对Ember很新,所以我有一些关于从这里做什么的想法,但似乎没有理想。

我可以查找封闭的<div id="embernnn" class="ember-view>标记并拒绝Ember应用内联display:none样式的实例。但这将依赖于实现而不是抽象。

我可以使用视图将类添加到当前<article>但是如果我必须这样做那么为什么Ember会在视图中提供isVisible属性?

我猜有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我不会使用内联样式 - 而是使用CSS类。在您的视图/组件中,只需添加classNameBindings: ['isVisible'],,在CSS中即可使用.is-visible { display: block; }。我实际上会反驳逻辑,因为除非隐藏,否则应该是可见的,而不是隐藏,除非可见,但我认为你得到了我的一般观点。

在您的测试用例中,您可以声明该元素具有所需的类,或者选择包含find('article.is-visible')的活动文章。