ruby – rspec中的相关测试
我写了功能测试,我需要做的测试取决于之前测试的通过.假设我有一个按钮,可以打开一个有功能的窗口.也就是说,为了检查这个功能,我需要先检查按钮的正确操作(即打开窗口或不起作用).所以,我需要这样做,如果按钮点击测试失败,测试没有运行以检查功能窗口.单独编写测试 – 对我来说不是一种选择.我想看到这样的事情:
describe "some tests" do open_result = nil it "should check work button" do click_to_button() open_result = window_opened? open_result.should == true end if open_result describe "Check some functional" do it "should check first functional" it "should check second functional" end end end 我知道这种方法对rspec不起作用.这只是我想要看到的简单描述.使用rspec可以实现吗?如果没有,还有其他方式(宝石等) 解决方法
RSpec被设计为单元测试框架,因此从中获得完美的功能测试行为可能有点困难.在RSpec的哲学中,测试必须是独立的.使用自动测试时尤为重要:在这种情况下,执行顺序确实是不可预测的.伤心但真实.
当然,您可以使用全局($a)或实例(@a,此处不确定)变量在测试之间保存一些状态.无论如何,你需要移动,如果进入它阻止,以便它将及时执行.如果不满足前提条件,您可以使用 但 我确信最好的解决方案是避免使用golden hammer反模式,而不是在单元测试框架中编写功能测试.您不想测试某些单独的功能.您确实想要测试方案.所以我建议尝试一些场景测试套件. 看哪,Cucumber!用法很简单: >在Ruby中定义参数化的场景步骤,以及RSpec风格的期望 在你的情况下,你将有feature / step_definitions / gui_steps.rb之类的东西 Given /I pushed a button "(.*)"/ do |name| @buttons.find(name).click() # This line is pseudo-code,you know end 和检查窗口打开等类似的东西(见examples).然后,您可以以任何方式组合已定义的步骤,例如,您的两个方案可能看起来像 Scenario: Feature 1 Given I pushed a button "go" And I focus on opened window When I trigger "feature 1" Then I should se "result 1" in text area Scenario: Feature 2 Given I pushed a button "go" And I focus on opened window When I trigger "feature 2" Then I should se "result 2" in text area 在这两种情况下,如果某个场景步骤失败(比如我专注于打开的窗口 – 如果它没有打开),则不执行后续步骤 – 就像您想要的那样.作为奖励,您可以获得有关所发生事件和步骤的非常详细的信息(请参阅网站上的图片). 好消息是,您并不总是需要自己定义所有步骤.例如,当您测试Web应用程序时,您可以使用webrat步骤来处理典型的事情,例如当我转到url / a / b / c然后我应该在页面上看到文本“foo”.我不知道你使用的是哪个GUI测试框架,但可能已经有了它的步骤,所以我建议你谷歌使用Cucumber%framework name%.即使不是这样,一次编写这些步骤并不比尝试从RSpec制作Cucumber更困难. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Cocos2d-X的UI树(1)
- ruby-on-rails – 渲染状态:403导致“缺少模板”错误
- ruby – 减去2个数组的值并获得一个带有减去值的新数组
- c# – 为什么在.NET Core中看不到WindowsIdentity类
- Cocos2dx 3.0在Eclipse中编译生成APK
- react-native run-android报错A problem occurred configur
- ruby-on-rails – 如何通过foreign_to引用的外部属性进行排
- oracle中得到一条SQL语句的执行时间的两种方式
- 如何在xml架构中为递归类型定义Xpath选择器
- 正则表达式(一)认识正则表达式