在iPhone上用于行为驱动开发的最佳技术是什么?什么是一些开源示例项目,证明了这些技术的合理使用?以下是我发现的一些选项:
UI自动化(适用于设备)
可以使用Cucumber(用JavaScript编写)来驱动UI自动化.这将是一个伟大的开源项目.然后,我们可以编写Gherkin来运行UI自动化测试.现在,我只会写Gherkin作为评论.
更新:Zucchini框架似乎融合了Cucumber和UI Automation!:)
旧博客帖子:
弗兰克和iCuke(基于黄瓜会见iPhone谈话)
什么时候我应该使用Rails应用程序的规格和黄瓜(前rspec故事)?当然,我知道如何工作和积极使用规范.但使用黄瓜仍然感觉很奇怪.我目前对此的看法是,当您为客户端实现应用程序并且不了解整个系统应该如何工作时,使用Cucumber很方便.
但是,如果我正在做自己的项目呢?在大多数情况下,我知道系统的各个部分是如何相互作用的.我需要做的就是写一堆单元测试.那时我需要黄瓜的可能情况是什么?
并且,作为相应的第二个问题:如果我写黄瓜故事,我是否必须编写规范?难道不是同一件事的双重测试吗?
integration-testing unit-testing rspec cucumber rspec-stories
我有6个月的Rails开发经验.我已经构建了一个现在正在使用的Web应用程序,它具有身份验证和授权以及postgresql db.
我正在继续我的第二个Rails应用程序,但这一次,经过经验教训,我想用TDD开发它,因为我注意到它更容易扩展它并修复bug.它发展缓慢,但从长远来看,它更容易处理.
我听说过Rspec和Cucumber,但他们完全被他们搞糊涂了.
我想知道RSpec和Cucumber之间的区别以及它们的用途.
从初学者(也是唯一的开发者)的角度来看,是否确实需要测试框架也是有用的.
我想重用一些Cucumber步骤,但似乎找不到正确的方法.
我想写一个像这样的步骤:
Given /^I login with (.*) credentials$/ |type|
  # do stuff with type being one of "invalid" or "valid"
end
Run Code Online (Sandbox Code Playgroud)
但是又有另一个步骤:
Given /^I login successfully$
  # call "Given I login with valid credentials"
end
Run Code Online (Sandbox Code Playgroud)
因此在测试用户身份验证时我可以使用前者,但大多数其他地方,我可以使用后者,而不是实际上必须重新编码.
有没有办法调用其他步骤,或者我只是将逻辑放在辅助方法中,并从每个任务调用所述方法(基本上是一个方法提取重构,在阅读我的问题后让我相信这实际上是最好的方法无论如何)?
我正在使用许多jQuery插件,它经常创建没有id或其他标识属性的DOM元素,并且在Capybara中获取它们的唯一方法(例如用于点击) - 是为了让他们的邻居(其祖先的另一个孩子)首先.但我没有找到任何地方,例如Capybara支持这样的事情:
find('#some_button').parent.fill_in "Name:", :with => name
Run Code Online (Sandbox Code Playgroud)
?
快速的一个,有没有人遇到类似于Ruby的黄瓜(一个人类可读的DSL,用于定义可以测试的用例故事)在.NET领域?
在小黄瓜语法中(由Cucumber和SpecFlow使用,我可以通过在前面添加'#'来注释掉一行
有没有办法阻止评论多行?
在测试场景时,cucumber我在运行rspec测试时遇到以下错误
无法在60秒内获得稳定的firefox连接(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError)
使用ruby (1.9.2) selenium-webdriver (2.27.2)和firefox (19.0)
使用rspec-rails (2.12.1),capybara (2.0.2)和其他几个宝石,我也添加了launchy宝石,但他们似乎没有问题.而我正在使用Windows 7.
ruby-on-rails cucumber capybara rspec-rails selenium-webdriver
什么用于node.js的BDD和TDD?
我习惯使用Cucumber + RSpec.node.js有什么好的组合?
谢谢
我正在写一个黄瓜测试,我想在一个元素中获取HTML.
例如:
within 'table' do
  # this works
  find('//tr[2]//td[7]').text.should == "these are the comments" 
  # I want something like this (there is no "html" method)
  find('//tr[2]//td[7]').html.should == "these are the <b>comments</b>" 
end
Run Code Online (Sandbox Code Playgroud)
有人知道怎么做吗?