我已经写了我们的web应用程序模态幻灯片呈现的文档集合导航,并公开各种元数据对这些文件。限制黄瓜步骤或步骤文件到指定的功能或标签
这是深奥的应用要求很大成分的,所以我认为这是不够公平,它的核心情景(给我作为验收标准),应该是既繁多又内部一致。
为了避免对我们的每一个很多情况下一个新的台阶,我已经适应a helper它能把人可读的术语如document caption
成选择:
module SelectorsHelper
def selector_for(term)
case term
# Lightbox/modal/fancybox
when 'lightbox'
'#fancybox-inner'
when 'close button'
'.document-viewer__tools__close'
...旁边的几个通用的步骤定义如以下内容:
# Generic click action
When(/^I click (?:on)?(?:the |a)'(.*?)'?$/) do |element|
find(selector_for(element)).click
end
的问题,我是否作用于非常通用的概念,与涉及的功能集内复发即图案,上面的或更具体的抽象的是,这些可能肆虐w ^还有其他深奥的功能,可能有更多的具体步骤来解析它们。我见过的每个Cucumber示例都有步骤定义文件,其文件名与特定功能文件具有程序关系,我的假设是,在这些情况下,只会调用该步骤定义文件来解析相关功能中的场景:
+ features
| + step_definitions
| | + global_steps.rb
| | + modal_steps.rb
| | + login_steps.rb
| + modal.feature
| + login.feature
但事实并非如此 - 我挣扎着自己辞职,黄瓜尝试应用每步骤定义模式,以每场景的概念。如果这些测试将有任何优点,它们将会变得更多,引入新的概念,并保持相关性,而不需要连续重写。我希望能够限制我的步骤范围,以阻止它们干扰未写入的功能,但不知道如何。以下概念性方案浮现在脑海中:
- 使用背景或场景
@tags
并调用步骤仅适用于场景与这些标签 - 接下来的步骤定义在某种包装的辅助或可变步骤清晰,用一个调用给出的错误背景
我对Ruby不熟悉,而且Cucumber看起来非常薄,所以我一方面无限潜力,另一方面没有预先确定的实现。有任何想法吗?
我想我的问题是寻找一个非常具体的解决方案,以一个令人难以置信的通用困境。这是我所希望的一个很好的问题。你的建议 - 不是如何打算使用黄瓜 - - 很有意义。如果我回到使用黄瓜,我会遵循这个建议! – Barney