社区首页 >问答首页 >如何使我的RSpec描述块彼此独立运行?

如何使我的RSpec描述块彼此独立运行?
EN

Stack Overflow用户
提问于 2016-04-01 11:12:07
回答 1查看 345关注 0票数 1

在我的仪表板页面上,我有一个Metrics部分,其中显示了用户的目标数。对于没有目标的用户,我不显示本节。当用户创建目标和重定向之后,Metrics部分将出现。

在下面的RSpec测试中,当RSpec首先随机运行第一个describe时,测试会通过,因为它找不到Metrics部分。但是,当RSpec首先运行第二个describe块时,第一个describe块会失败,因为此时重定向已经发生,并且Metrics部分已经出现。

如何确保每个块单独运行并通过?

代码语言:javascript
代码运行次数:0
复制
describe "Dashboard Pages", :type => :request do

  subject { page }
  let(:user) { FactoryGirl.create(:user) }

  before(:each) do 
    sign_in user
  end  

  describe "After user signs in - No Goals added yet" do

    it { is_expected.to have_title(full_title('Dashboard')) }
    it { is_expected.to have_content('Signed in successfully')}

    it "should not show the metrics section" do
      expect(page).to_not have_css("div#metrics")
    end

  end

  #
  #Notice that this runs using the SELENIUM WebDriver
  #
  describe "After user signs in - Add a new Goal" do

    it "should display the correct metrics in the dashboard", js: true do

      click_link "Create Goal"      
      fill_in "Goal Name", :with=> "Goal - 1" 
      fill_in "Type a short text describing this goal:", :with => "A random goal!"
      click_button "Save Goal"
    end  

  end

end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-02 04:55:53

我认为您的问题是,click_button "Save Goal"发送的请求在测试完成后到达服务器。Capybara的Javascript驱动程序是异步的,不需要等待它们发送给浏览器的命令完成。

让Capybara等待的通常方法是,当您想要等待的命令完成时,期望页面上的内容是真实的。无论如何,这是一个好主意,因为上一次测试实际上并不期望指标像它所说的那样显示。因此,预期它们是:

代码语言:javascript
代码运行次数:0
复制
it "should display the correct metrics in the dashboard", js: true do
  click_link "Create Goal"      
  fill_in "Goal Name", :with=> "Goal - 1" 
  fill_in "Type a short text describing this goal:", :with => "A random goal!"
  click_button "Save Goal"
  expect(page).to have_css("div#metrics")
end

另外,请注意,当前的RSpec和Capybara不允许您在请求规范中使用Capybara。除非您由于其他原因而绑定到旧版本,否则我建议升级到当前的RSpec和Capybara,并将您的请求规范转换为特性规范。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36364123

复制
相关文章
如何使iOS后台运行代码
最近在开发一个关于校园的项目,其中有这么一个需求:学生晚上8:00第一次打完卡后在当天夜晚11:00时需要再一次上传学生当前地理位置,判断是否还在宿舍(MMP防不胜防)。但是最后一次上传是不需要学生操作的,APP默默的执行。
用户6094182
2019/08/23
1.8K0
如何使iOS后台运行代码
如何使程序在Linux后台运行
这样一来,test程序就在后台运行了。但是,这样处理还不够,因为这样做虽然程序是在后台运行了,但log依然不停的输出到当前终端。因此,要让终端彻底的清静,还应将log重定向到指定的文件:
阿凡亮
2020/04/14
8.8K0
如何使python脚本运行在daemon
有一个很好的库可以完成这一功能,可惜因为文档少所以网上例子不太多 库名:python-daemon 可以通过Pip来安装 最简单的使用方式 import daemon with daemon.DaemonContext(): print "your code" 当然代码块中最好放一个长时间执行并写日志到某个路径的代码,方便观察代码的执行情况 简单但是缺乏必要的控制,比如 如果我们想保证无论多次执行程序都只保证系统内只有一个改程序的进程的话就需要pid文件来控制这时候可以使用这个库带的另一个类Da
py3study
2020/01/08
2.3K0
Effective Testing with RSpec 3 (第一部分:入门)
RSpec 3是一个高效的Ruby测试框架。 我们说生产效率很高,因为关于它的一切 - 它的样式,API,库和设置 - 都是为了在编写出色的软件时为你提供支持。
不知雨
2018/09/06
2K0
react+electron使应用窗口相互独立
前两篇文章我们介绍了react+electron构建桌面应用和如何加载本地的静态资源。然后现在有个需求,是要使应用里的弹窗独立于主窗口,今天来实现这个需求。
winty
2020/08/24
1.8K1
react+electron使应用窗口相互独立
使WordPress运行PHP代码的插件
众所周知,WordPress的侧边栏和文章不能够直接运行自定义的php代码,reizhi今天给各位介绍一个插件,它能改变这一现状。
reizhi
2022/09/26
7620
使WordPress运行PHP代码的插件
springboot的jar为何能独立运行
在开发springboot应用时,通过java -jar命令启动应用是常用的方式,今天就来一起了解这个简单操作背后的技术;
程序员欣宸
2021/05/13
7630
springboot的jar为何能独立运行
springboot的jar为何能独立运行
https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
程序员欣宸
2022/05/09
4190
springboot的jar为何能独立运行
Rails测试:Rspec
One: Case Study Debug sucks, and test rocks! If you use rails, then you should know how to use RSpec to test your rails app. I use a simple case to practice basic RSpec. If you want practice, go to check the saasbook/bdd-tdd-cycle practice at the end of th
用户2183996
2018/06/28
1.1K0
Bootstrap 代码内联元素转变独立的块元素代码
请确保当您使用 <pre> 和 <code> 标签时,开始和结束标签使用了 unicode 变体: &lt; 和 &gt;。
好派笔记
2021/09/18
9200
RTSP/Onvif协议视频平台EasyNVR如何修改运行服务描述?
EasyNVR是基于RTSP/Onvif协议接入的视频平台,可支持将接入的视频流进行全平台、全终端的分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台部署轻快、兼容性高、可拓展性强,功能丰富灵活,在安防视频监控市场上,受到的关注越来越多。
TSINGSEE青犀视频
2022/05/11
2850
RTSP/Onvif协议视频平台EasyNVR如何修改运行服务描述?
EasyNVR是基于RTSP/Onvif协议接入的视频平台,可支持将接入的视频流进行全平台、全终端的分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台部署轻快、兼容性高、可拓展性强,功能丰富灵活,在安防视频监控市场上
EasyNVR
2022/05/12
2800
RTSP/Onvif协议视频平台EasyNVR如何修改运行服务描述?
使程序在Linux下后台运行
我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本Linux服务器。所以使程序在后台跑有以下三个好处:
SingYi
2022/07/14
4.3K0
GitLab CI / CD管道配置参考 .gitlab-ci.yml文件定义字段
使用在每个项目中调用的YAML文件配置GitLab CI / CD 管道.gitlab-ci.yml。
拿我格子衫来
2022/01/24
22.3K0
Kafka 2.8独立运行,不再需要ZooKeeper
分布式发布与订阅系统Apache Kafka在即将发布的2.8版本,使用Kafka内部的Quorum控制器来取代ZooKeeper,因此用户第一次可在完全不需要ZooKeeper的情况下执行Kafka,这不只节省运算资源,并且也使得Kafka效能更好,还可支持规模更大的集群。
java进阶架构师
2021/04/21
9130
我独立开发的App:斯派来 | Spyfari
Story+Safari, 基于地理位置的短故事App。 重组图片、文字、位置, 赋予位置新的故事。 中文名:斯派来 英文名:Spyfari 价值: 重焕地点的魅力, 重新发现文字的美。 经典场景: Spyfari 有点类似于“明信片”, 当你到达某地的时候, 你可能会买一张“明信片”, 然后你会把这张“明信片”邮寄出去。 如果用Spyfari, 你可以毫不费劲的, 基于地理位置创作一张, 有范的“明信片”出来。 ---- 在Spyfari, 只需要轻轻点击发送, 就可以发送到指定的地点, -
mixlab
2018/04/16
8040
我独立开发的App:斯派来 | Spyfari
领导让我做个独立服务
如题,这季度要做的需求,是一个独立模块,但是由于项目越来越大,模块间的结构越来越复杂,不得不面临的一个问题就是服务拆分,当然,在拆分之前,新加的模块,最好还是直接做成一个独立的服务,这不,要把本季度的需求,单独做一个服务出来,因为这是项目的第一个独立服务,所以要考虑和准备不少东西,蛮有挑战性的,在这里总结下我对微服务浅陋的见解。
Java阿呆
2021/08/23
3970
领导让我做个独立服务
Kafka 2.8独立运行,不再需要ZooKeeper
分布式发布与订阅系统Apache Kafka在即将发布的2.8版本,使用Kafka内部的Quorum控制器来取代ZooKeeper,因此用户第一次可在完全不需要ZooKeeper的情况下执行Kafka,这不只节省运算资源,并且也使得Kafka效能更好,还可支持规模更大的集群。
肉眼品世界
2021/04/20
6900
进程控制块PCB结构 task_struct 描述
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念
s1mba
2018/01/03
1.8K0
进程控制块PCB结构 task_struct 描述
Effective Testing with RSpec 3(介绍)
我们的测试再次被打破!”“为什么套件需要这么长时间才能运行?”“无论如何,我们从这些测试中获得了什么价值?”
不知雨
2018/09/06
2K0

相似问题

使RSpec在"it“块中的描述之前打印"context”描述

10

创建多个滑块并使它们彼此独立运行

30

使列表项的样式彼此独立

21

如何更改RSpec描述块的模块上下文?

22

如何使未绑定命名的XAML元素的动态加载实例彼此独立运行?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文