rspec 相关问题

RSpec是一种针对Ruby编程语言的行为驱动开发(BDD)框架,受JBehave的启发。它包含基于JMock的完全集成的模拟框架。该框架可以被认为是特定于域的语言(DSL)并且类似于自然语言规范。

Rspec是否可以做类似should_receive(:foo).with(:bar).and_call_original.exacly(1).times的事情?

是否可以执行类似 ServiceObject.should_receive(:foo).with(:bar).and_call_original.exacly(1).times 的操作? 我的规格看起来像这样: 它“应该调用服务对象的实例\...

回答 1 投票 0

Rspec - 如何在不使用额外 gem 的情况下测试引发错误时的重试?

我的代码 def make_error 引发标准错误,'错误' 结尾 鲍勃级 def 栏(东西) 把东西 结尾 结尾 定义 foo ['a', 'b'].each 做 |x| 重试计数器 = 5 开始 酒吧(x)

回答 1 投票 0

使用 rspec 和 capybara 单击链接不会加载页面

在Rails 3.2中,我使用rspec(2.11.0)和capybara 1.1.2(并且尚未安装webrat),当我单击网页上的链接时,它会做一些奇怪的事情。 我正在尝试点击我主页上的链接...

回答 2 投票 0

我如何在水豚中点击这个按钮

请帮我解决水豚的问题 我在水豚中有一个这样的按钮: 我尝试过 点击但是...

回答 4 投票 0

Rails Rspec 测试路由使用的 lib 类包含私有方法

Simplecov 检测到我缺少对 lib/api_verson.rb 类的一些测试: 类 ApiVersion def 初始化(版本) @版本=版本 结尾 def 匹配?(请求)

回答 1 投票 0

测试在单独运行中成功,但在所有测试的一般运行中不成功

我有一个单独的测试通过,但是当我一起运行所有内容时,它失败了。我运行了 --bisect 标志,这就是它给我的: 最小的复制命令是: rspec ./spec/requests/a...

回答 1 投票 0

将 rspec 与 capybara-webkit 或 selenium 一起使用来测量页面加载时间

我希望找到一种方法来编写可用于测量页面加载时间的 rspec 脚本(或其他脚本)。与firebug如何判断页面何时完全加载如此相似,是否有类似的...

回答 1 投票 0

如何在cuprite中切换选项卡并断言内容?

我用的是赤铜矿0.13 水豚3.53.3 规格3.11 我有一个简单的规范,单击带有 target="_blank" 属性的链接。 new_window = page.window_opened_by 做 点击...

回答 1 投票 0

仅使用 rspec 模拟嵌套块的中间层

我正在使用名为 kubernetes_leader_election 的 gem 编写一些代码,它在自述文件中提供了一个完整的示例,展示了如何使用它。我的用法和READM基本一样...

回答 1 投票 0

如何在水豚中点击表单提交按钮

使用 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 有帮助

回答 3 投票 0

如何从 RSpec 中删除重复项

这是我的规格文件: 上下文“答案是正确的” 在(:每个)之前做 @answer = Stub_model(答案, :正确 => true).as_new_record 分配[:answer] = @answer 任...

回答 2 投票 0

如何在Factorybot中为具有nested_attributes的模型创建工厂

我想用 RSpec 测试以下控制器 coupons_controller.rb: 类 Api::V1::CouponsController < ApiController def index if params[:profile_id] @coupons = Profile.find(para...

回答 1 投票 0

如何解决 ActiveStorage::FileNotFoundError: 使用 rspec 运行测试时?

运行 rspec 时,我使用 ActiveStorage 收到文件未找到错误,但我不知道出了什么问题。 这就是它的设置方式。 存储.yml 测试: 服务:磁盘 根: <%= Rails.root.join(&qu...

回答 1 投票 0

Rspec 测试表单视图与范围路由的问题

在为 Ruby on Rails 应用程序(Rails 版本 6.0.6)搭建新模型后,我对新模型的新视图(索引、显示、新建和编辑)进行了几个搭建的 Rspec 测试。我加倍

回答 1 投票 0

Rspec:“array.should == another_array”但不关心顺序

我经常想要比较数组并确保它们以任意顺序包含相同的元素。在 RSpec 中是否有一种简洁的方法来做到这一点? 以下是不可接受的方法: #设置 对于e...

回答 6 投票 0

如何分析我的 rspec 测试以找到最大的内存消耗?

我们使用 Circleci 作为部署过程的一部分。 Circleci 运行了我们的 3000 次测试,有时会失败,因为它达到了 4 GB 内存限制。看起来我们的一些测试正在创建很多对象......

回答 1 投票 0

在 RSpec 中 - 如何测试一个属性是否小于(或大于)另一个属性

在我的应用程序中我想要一个汽车模型。 它将有两个字段:date_from 和 date_till(指定某人使用它的时间段)。 我希望模型能够验证 date_from

回答 5 投票 0

为什么我在 ruby 中使用 undef 取消定义包含的类方法后无法重新定义它?

我正在升级 Rails 项目,并在早期版本中包含了 Mocha。它定义了一个any_instance方法。我要升级到的 Rspec 新版本还包括 any_instance 方法...

回答 1 投票 0

不同用户上下文的 DRY 请求规范

我正在开发一个 api 应用程序,在此示例中,它有 2 种基本用户类型:管理员和用户。 对于此示例,资源将为 Widget。管理员可以完全访问控制器中的小部件和 u...

回答 2 投票 0

如何使用RSpec检查请求体

我有以下方法 def post_it(data_hash) uri = URI.parse("https://example.com/api") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true 请求 = Net::HTTP::Po...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.