Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在capybara中保持测试之间的状态/会话_Ruby On Rails_Capybara_Rspec Rails - Fatal编程技术网

Ruby on rails 在capybara中保持测试之间的状态/会话

Ruby on rails 在capybara中保持测试之间的状态/会话,ruby-on-rails,capybara,rspec-rails,Ruby On Rails,Capybara,Rspec Rails,因此,我正在使用Rails4.0+rspec+capybara+databasecleaner编写一些集成测试 目前,每项测试都是完全孤立的。也就是说,如果我想写一个“故事”来测试更改一些用户设置,我需要首先登录,然后导航到用户设置,并更改一个测试的用户名。然后,我必须再次执行整个过程,以测试用户电子邮件的更改 我如何编写一个故事,让每个测试都在同一页上开始,而不在前面使用:each 我找不到任何文档,因此任何提示或帮助都将不胜感激 对于集成测试,您似乎应该能够使用sign_-in测试助手(对于

因此,我正在使用Rails4.0+rspec+capybara+databasecleaner编写一些集成测试

目前,每项测试都是完全孤立的。也就是说,如果我想写一个“故事”来测试更改一些用户设置,我需要首先登录,然后导航到用户设置,并更改一个测试的用户名。然后,我必须再次执行整个过程,以测试用户电子邮件的更改

我如何编写一个故事,让每个测试都在同一页上开始,而不在前面使用
:each


我找不到任何文档,因此任何提示或帮助都将不胜感激

对于集成测试,您似乎应该能够使用
sign_-in
测试助手(对于designe)或通过第三个参数模拟“signed-in”用户,以
post
put
:post'edit',{hash of parameters to update here},{user_id:user.id}前面的
(:each)
然后设置必要的模型数据,以使
post
操作生效,如果无法通过post本身传入会话,则设置一个
sign\u in
帮助程序。@stringsn88这只是一个步骤:用户登录。而是避免创建用户+一直导航到某个页面。这是缓慢的,当它必须发生所有的时间,而连续的测试需要在同一个确切的页面。