我有一个非常大的rails应用程序,其主视图由一个复杂的,深度嵌套的表单组成,由不同的用户沿着预定义的流程编辑(user1输入一些信息,user2输入更多等)。
我使用Rspec + Capybara编写了一个非常长的测试来测试整个过程,这一过程很好,直到我切换到使用远程窗体(通过设置remote:true)。
此时,我需要在使用js驱动程序和常规驱动程序之间切换,以便在同一视图中测试不同的东西(提交时为js,其他所有内容为常规驱动程序),但我似乎无法找到任何内容如何做到这一点的例子。
主要问题是我发现的所有测试文档假设您可以运行单独的测试,每个测试都有自己的驱动程序,只需设置js:true并进行其他一些更改,但我的问题是我需要在同一个内部发生所有事情测试事件顺序是关键。
任何建议都将受到高度赞赏。
答案 0 :(得分:0)
我不相信你可以使用不同的水豚驱动程序嵌套测试,同时保持上述嵌套测试的更改;从say rack_test更改为webkit或selenium时,更改不会发生变化。我有一个类似的问题,只是让capybara检测变化:remote =>真正的设置,最终让它与webkit驱动程序一起工作。我在这里发布了对我有用的东西: Capybara, Javascript and RSpec Integration Tests with :remote => true
您可能只想将使用远程表单进行测试之前需要完成的步骤重构为一个方法,您可以在之前的块中调用以保持代码清洁。