RSpec是一种针对Ruby编程语言的行为驱动开发(BDD)框架,受JBehave的启发。它包含基于JMock的完全集成的模拟框架。该框架可以被认为是特定于域的语言(DSL)并且类似于自然语言规范。
CLI 类 < Thor desc "run [age]" "user passes age" method_option :age,type:'numeric' def run variable=options[:a] if options[:a].present? call_method(a) end ...
我有几个 Sinatra API 的规范文件。 他们都有这些代码行: 需要“机架/测试” 需要“json” require_relative '../../../app/main.rb' 模块我的超级博客 类API 每个...
在使用Webmock和CarrierWave远程上传的测试中不解析url
CarrierWave 有一个很好的功能,可以从远程位置上传图像 https://github.com/rierwaveuploader/carrierwave#uploading-files-from-a-remote-location 我正在使用 Webmock 来存根远程
我正在使用 VCR gem 来记录 http 交互并在将来重放它们。我想过滤掉 uri 请求中的实际密码值。以下是 uri 的示例: http://服务。
Sidekiq::测试.假的!不伪造 Sidekiq::Queue
我有一个简单的工作线程正在访问其自己的队列的大小: 需要“sidekiq/api” 测试工作者类 包括 Sidekiq::Worker def 执行(*args) Sidekiq::Queue.new('test').size 恩...
我现在正在浏览 Michael Hartl 的 Rails 教程,发现我不断被鼓励使用奇妙的方法,这些方法可以莫名其妙地做出令人惊奇的事情。他做了一个总体的比较...
有没有办法使用Rspec let!具有范围,以便可以在多个示例中使用?
我正在尝试找出一种好方法来处理设置 rspec 记忆变量,这些变量将在一组测试后清除,但不会在单独测试后清除。 我希望它能够实现类似的目标...
什么是规格文件?我在cypress、Angular和其他软件中看到过spec文件,但我不知道它是什么?有人能用通俗的语言解释一下吗?或者只是解释一下?
Rspec是否可以做类似should_receive(:foo).with(:bar).and_call_original.exacly(1).times的事情?
是否可以执行类似 ServiceObject.should_receive(:foo).with(:bar).and_call_original.exacly(1).times 的操作? 我的规格看起来像这样: 它“应该调用服务对象的实例\...
Rspec - 如何在不使用额外 gem 的情况下测试引发错误时的重试?
我的代码 def make_error 引发标准错误,'错误' 结尾 鲍勃级 def 栏(东西) 把东西 结尾 结尾 定义 foo ['a', 'b'].each 做 |x| 重试计数器 = 5 开始 酒吧(x)
使用 rspec 和 capybara 单击链接不会加载页面
在Rails 3.2中,我使用rspec(2.11.0)和capybara 1.1.2(并且尚未安装webrat),当我单击网页上的链接时,它会做一些奇怪的事情。 我正在尝试点击我主页上的链接...
请帮我解决水豚的问题 我在水豚中有一个这样的按钮: 我尝试过 点击但是...
Rails Rspec 测试路由使用的 lib 类包含私有方法
Simplecov 检测到我缺少对 lib/api_verson.rb 类的一些测试: 类 ApiVersion def 初始化(版本) @版本=版本 结尾 def 匹配?(请求)
我有一个单独的测试通过,但是当我一起运行所有内容时,它失败了。我运行了 --bisect 标志,这就是它给我的: 最小的复制命令是: rspec ./spec/requests/a...
将 rspec 与 capybara-webkit 或 selenium 一起使用来测量页面加载时间
我希望找到一种方法来编写可用于测量页面加载时间的 rspec 脚本(或其他脚本)。与firebug如何判断页面何时完全加载如此相似,是否有类似的...
我用的是赤铜矿0.13 水豚3.53.3 规格3.11 我有一个简单的规范,单击带有 target="_blank" 属性的链接。 new_window = page.window_opened_by 做 点击...
我正在使用名为 kubernetes_leader_election 的 gem 编写一些代码,它在自述文件中提供了一个完整的示例,展示了如何使用它。我的用法和READM基本一样...
使用 Rails、rspec 和 capybara,我正在尝试测试典型的 ERB 生成形式: 使用 Rails、rspec 和 capybara,我正在尝试测试典型的 ERB 生成形式: <form action="/pages/1" id="edit_page_1" method="post"> <input id="page_title" name="page[title]" type="text"> <input name="commit" type="submit" value="Update Page"> </form> 我运行两种功能规范,一种是无论哪种语言都相同的,另一种是 I18N 特定的(用于国际化测试)。 问题是没有明确的方法来点击水豚的提交按钮,除非我错过了明显的。我希望简单地click('commit')就能达到目的。 使用 click_button('Update Page') 可以工作,但显然是特定于语言的,并且不能与新建模板和编辑模板一起使用,即使它们呈现相同的表单模板。 向提交按钮添加 id 是可行的,但我非常不喜欢专门更改代码,因为测试需要它。 使用 css 或 xml 匹配器看起来都很丑(用户永远不会知道/关心以这种方式访问元素),而且太过分了。 最后,一个宏就是我需要的答案,因为显然水豚中没有任何原生的东西。 # spec/support/form_helpers.rb module FormHelpers def submit_form find('input[name="commit"]').click end end 这包含在spec_helper.rb中 RSpec.configure do |config| config.include FormHelpers, :type => :feature ...etc... 我使用了 :type => :feature,因此它仅包含在集成测试中。 在集成测试中你可以这样使用它: scenario 'pages can be created' do visit new_page_path fill_in 'page_title', with: 'A Tale of Two Cities' submit_form # Clicks the commit button regardless of id or text expect(page).to have_content 'The page was created' ...etc.. end 当然submit_form也可以在within块内使用并与:js => true一起使用。 我通常这样做: within 'form#edit_page_1' do find('input[name="page[title]"]').set "Some Value" find('input[name="commit"]').click end 它与 html 相关,但与它的语义属性相关,所以我觉得它很好。 事实上我从来不使用神奇的取景器。 顺便说一句,我不明白你的评论:(a user would never know/care about accessing an element that way)。 集成规范适合您,它肯定会模仿用户,但这只是提供正确说明的问题。 尝试使用: find('input[name="commit"]').click 有帮助
这是我的规格文件: 上下文“答案是正确的” 在(:每个)之前做 @answer = Stub_model(答案, :正确 => true).as_new_record 分配[:answer] = @answer 任...
如何在Factorybot中为具有nested_attributes的模型创建工厂
我想用 RSpec 测试以下控制器 coupons_controller.rb: 类 Api::V1::CouponsController < ApiController def index if params[:profile_id] @coupons = Profile.find(para...