我正在尝试TDD我的第一个Ember应用程序。我想一次显示一个<article>
元素。我从服务器上收到了几篇文章。我的展示视图定义isVisible()
,以便一次只向用户显示一个<article>
。
在我的测试中,我想做类似的事情:
equal(find('article').text(), 'foobar');
问题在于它找到所有文章是否可见。
我对Ember很新,所以我有一些关于从这里做什么的想法,但似乎没有理想。
我可以查找封闭的<div id="embernnn" class="ember-view>
标记并拒绝Ember应用内联display:none
样式的实例。但这将依赖于实现而不是抽象。
我可以使用视图将类添加到当前<article>
但是如果我必须这样做那么为什么Ember会在视图中提供isVisible属性?
我猜有更好的方法吗?
答案 0 :(得分:1)
我不会使用内联样式 - 而是使用CSS类。在您的视图/组件中,只需添加classNameBindings: ['isVisible'],
,在CSS中即可使用.is-visible { display: block; }
。我实际上会反驳逻辑,因为除非隐藏,否则应该是可见的,而不是隐藏,除非可见,但我认为你得到了我的一般观点。
在您的测试用例中,您可以声明该元素具有所需的类,或者选择包含find('article.is-visible')
的活动文章。