Rspec 如何编写规范来测试对象是否具有特定值?

我想测试对象在Rails操作中是否具有特定值。我怎样才能用Rspec做到这一点 我最初的尝试是: it "should have @body_class equal to 'buildings'" do response.should =~ / buildings / end 编辑: 我应该指定@body_class正在控制器中设置,并由助手用于为body标记的class属性赋值。我希望它可能在响应对象中可用,但它不可用。实例变量可以在赋值哈希中找到: # controller def

如何定制Rspec文档格式

当我执行rspec规范时,我会通过以下方式获得测试报告: Course Group Loged in In the new course group form Create a new Group course Create a new Group course with complex name (FAILED - 1) Create a new Group course with 3 subjects (FAILED - 2) 1) Cour

如何在rails中生成Rspec?

如何在rails中生成rspec? 我还为rspec安装了插件。。 我还安装了gem-rspec、rspec-rails。。 现在我能做些什么呢?一旦你安装了rspec,就会有新的生成器可用,叫做rspec_scaffold,rspec_model和rspec_controller,它们的工作原理与普通的rails生成器类似,只是不生成存根测试,他们生成存根规范。带着同样的问题来到这里,唐的回答让我走上了正确的道路。但是,生成器有:而不是Rails 3名称中的uu: > rails g r

Rspec 如何测试依赖于Date.current的模型?

我的模型将具有使用Date.current的逻辑,如下所示: if(date_three && date_three != Date.current.yesterday) ... end 如何在我的规格上更改系统的当前日期,以便我可以使用不同的日期测试我的模型?这类任务有一个gem,-.这类任务有一个gem,-.将要测试的日期作为依赖项传递,不要硬编码。这将允许您的测试选择要测试的日期,其他方法可以传入date.current.Duplicate-Google“ruby t

Rspec 铁轨与水豚,为什么我可以';在中找不到使用的选择器?

我正在尝试测试一个链接,我希望我能解决这个问题: 我试着像这样测试链接: nested_element= "div.page_margins div.page iv#nav div.hlist ul li#2" within(nested_element) do response.body.should have_link("Next", :href=>"javascript: void(0)") end 但我得到了这个错误: Capybara::ElementNotF

用RSpec设计异步gem

我正在使用Deave async gem异步发送我的Deave电子邮件-使用Resque 我正在做一些简单的RSpec控制器测试,通过检查ActionMailer::Base.deliveries数组来确保发送忘记的密码 在我开始使用DeVIATE async gem之前,它就已经起作用了。我怎样才能立即“发送”队列中的电子邮件,使它们以ActionMailer::Base.deliveries结束 例如,当我使用delayed_作业异步发送它们时(不使用designe async gem),我

Rspec 工厂女孩的问题有一个,属于协会

我已经连续三天与我的社团斗争,不知道还能往哪里去。我确信这个问题很简单,但我对RubyonRails还相当陌生,这让我很困惑 我已经创建了一个用户模型,它保存了用于设计身份验证的所有登录凭据。我有另一个配置文件模型,它保存了所有用户的设置(名字等)。最后,我有一个地址模型,它使用与概要文件关联的多态关联 用户有一个配置文件。配置文件属于用户,并且有一个地址。地址是一种多态关联,它使我的应用程序中的其他模型能够拥有与它们关联的地址 有一次,我让我所有的FactoryGirl定义都正常工作,但我正在

无法运行葫芦ios+;使用更新的Gem版本进行rspec测试

我在MacMini上使用RubyMineIDE中的rspec成功地创建了几个葫芦ios测试,效果非常好 然而最近我搬到了iMac,因此不得不配置和安装ruby和必要的gems。 但是,由于以下错误,这次我无法执行测试,我被卡住了。(复制了下面的错误消息) 最好的猜测是,这与两台机器上的gems版本不同有关。我做了详细的版本比较,发现了不少差异。。在此列出我认为可能与此错误相关的错误: (不幸的是,我现在无法安装gems的旧版本(在iMac上),因为它们不再存在,而是更新版本) 以Gem name

Rspec 水豚:找不到css

我用水豚点击一个复选框,但无论我做什么,它似乎都找不到。我能够正确地找到范围和范围内的标签,但不能找到我实际需要的输入 这是复选框 <span class="checkbox tos"> <input id="agreement" name="agreement" onclick="agreeValidate();" type="checkbox" value="false"> <label for="agreement">I accept the &

如何使用rspec在Rails5gem中测试文件生成器

我对测试完全是新手,但我想学习,而且我在使用Rspec测试我创建的gem时遇到了麻烦。gem只是在所需位置创建一个包含两个文件的新文件夹。如何测试文件是否已创建并位于正确的位置 我使用bundler创建gem,并在我的gempec文件中添加了spec.add_development_依赖项“rspec”,“3.0”,目前我的spec文件夹包含my_gemname.rb和spec_helper.rb。我是否需要创建一个spec/dummy,并为rspec安装一个完整的应用程序进行测试?如何在rsp

Rspec Rails表单_有(远程:true)错误

我需要一些帮助 当我尝试从Rails使用ajax更新模型时,我遇到了一个错误(form_with/remote:true)。我能够很好地处理由Rails提供资源的URL的XHR请求(请参阅下面的路由),但对于自定义URL,我遇到了一个错误 控制器: rspec(请求): 视图: 正如您在test.log中所看到的,由UserController处理#criar As没有特定的格式(也许这就是问题所在?) test.log: 错误消息: 另一个请求测试 错误消息 失败/错误:预期(响应)。将\u重

为RSpec rails 5创建未定义的方法

可能是一个复制品,但它对我不起作用。 请让我知道我错过了什么 配置详细信息: #Gemfile gem 'factory_bot_rails' # 4.8.2 #spec/rails_helper.rb RSpec.configure do |config| config.include FactoryBot::Syntax::Methods #other config end spec/factories/otps.rb FactoryBot.define do factory

Rspec 使用FactoryBot创建列表并在每个实例中重新创建对象

这是rspec中之前的部分: 每次创建对象a时,我都要创建一个新的对象b。由于FactoryBot可处理惰性对象,因此不会重新创建对象: before do create_list(:object_a, 3, object_b: create(:object_b)) end 如何告诉FactoryBot为此创建列表中的每个对象创建一个新的对象 更新:奇怪的是 before do 3.times { create(:object_a, object_b: create(:object_b

Rspec 水豚:应该有html内容

如何使用capybara检查页面上的html内容 page.should have_text('this is <b>bold</b> "text"') page.应该有_文本('这是粗体的“文本”) 输出: Failure/Error: page.should have_text('this is <b>bold</b> "text"') expected there to be this is <b>bold</b> \"text\"

Rspec Ruby 2.0突破性的改变?日期比较

Heroku说Ruby 2.0是。好的,我会更新我的应用程序。但我的测试失败了。这一次失败了: a_date.should == the_same_date 日期是相等的。除了Ruby 1.9.3下的相同测试通过之外,我怎么知道呢?这在2.0下通过: a_date.to_i.should == the_same_date.to_i 这是Ruby 2.0中的一个bug吗?我找不到任何关于破坏对日期相等的更改的信息 更新 以下是实际测试输出: Failure/Error: target.shou

Rspec VCR未处理的http请求错误

我的规格将通过主分支。如果我创建一个新的分支并修改一些与订阅完全无关的代码,它们将失败。我能让他们通过的唯一方法就是把我的vcr.rb改成有:record=>:new_剧集 如果我保留这个选项,那么几乎每次我的规范运行时,我都会有新的修改过的磁带数据文件,这些文件最终被提交,这实际上稀释了Git的日志 对如何处理这个问题有什么建议吗?许多破坏的规格都基于此匹配器: describe "#change_plan_to", vcr: {match_requests_on: [:method, :

在给定的RSpec描述块中,let、before和it语句的顺序是否重要?

如果我在RSpec中有一个descripe语句,其中包含一组let、before和it语句,那么只要保持给定语句类型中的顺序,这些语句的特定交错是否会影响行为?例如,将: describe "ordering test" do <it1> <it2> <before1> <let1> <let2> <before2> end 描述“订购测试”应该做什么 结束 始终产生与以下相同的结果: descr

使用solr和rspec发布

我有一个提示自动完成的方法。我也在使用Solr 控制器中的方法如下所示: def address_autocomplete search = Sunspot.search(Address) do fulltext params[:term] with(:user_id, current_user.id) end.results render json: search.map(&:address_with_id_to_string).to_j

RSpec在它不应该';T为什么?

我正在构建一个非常小的SinatraAPI,今天我开始为它编写测试。我用的是RSpec和FactoryGirl 我有一个用户模型,在控制器中我检查正在注册的用户的电子邮件是否已经保存。如果保存,则返回402;如果没有,则创建用户并返回200。为了测试这一点,我使用相同的参数向用户路由发送了两次帖子,在第一次帖子中,我检查了最后的响应。应该是“ok”,因为数据库是空的,所以我可以创建用户,然后我做了另一个测试,在用户上发布与之前相同的参数,但期望得到最后一个响应。如果不正常,我会得到一个200!所

Rspec 3.0.0.beta2,带护栏3.2.17

正在尝试使用Rspec 3.0.0.beta2配置Guard。运行guard时,我遇到以下错误: Guard::RSpec未能实现其目标,异常为:……NoMethodError:未定义的方法“parse_options”# 任何人有什么想法吗?你的防护版本是什么,防护rspec版本等等 请遵循(并且不要犹豫。更新到正确版本的rspec、rspec rails和guard rspec对我有用,请执行gem list rspec、gem list guard以确保您拥有每个gem的最新版本 gith

Rspec Capybara::ElementNotFound使用';查找字段';

我正在rspec中编写一个capybara测试,试图找到一个元素的计数,该元素的属性有一个特定的值。我的DOM具有以下元素: <svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-background="previous 0 0 2 2"> <svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-b

Rspec Capybara:在page.all节点中查找元素

情况如下:一个页面上有n个面板。遍历每个面板:单击特定的元素,然后查找其子元素的文本,该文本仅在单击后显示 我可以使用像.has_css?这样的方法,但这对我没有帮助 显然,在这里使用find会很有帮助,但它不适用于Capybara::Node::Element page.all(:css, panelCss).each do |panel| counter+=1 if panel.has_css?(elemCss) Actions.c 'Yay! Found #

RSpec与嵌套哈希的部分匹配

我有一个JSON结构,我希望在忽略其他数据的同时匹配其中的单个嵌套元素。JSON看起来是这样的(最低限度): 下面是我现在正在使用的: response_json = JSON.parse(response.body) expect(response_json).to include("employee") expect(response_json["employee"]).to include("jobs_count" => 0) 我想做的是: expect(response_json

RSpec:如何测试是否使用正确数量的参数调用:new

我想测试类的initialize方法是否需要两个参数。我有以下资料: class Game end ... require 'game' describe Game do describe '#initialize' do it 'requires two players' do expect(Game).to respond_to(:new).with(2).arguments end end end 出于某种原因,上面的代码通过了,即使尝试使用2个参数

Rspec Chef关于ChefSpec平台和版本运行覆盖率的警告

我对Chef比较陌生,对ChefSpec也很陌生。我正在尝试运行Coverage以使用下面的spec\u helper.rb文件获取ChefSpec覆盖率: require 'chefspec' require 'chefspec/berkshelf' ChefSpec::Coverage.start! do add_output do |reportOutput| File.open( "coverage.json","w" ) do |f| f.puts(repo

Rspec:如何期望表中的href链接

我需要看到href“edit_data_source_group_path(data_source_group_1.id)”,它在表中,我尝试了上面的代码 我确信我没有在contains下传递正确的表达式 然后去下面的错误 Selenium::WebDriver::错误::InvalidSelectorError: 给定的xpath表达式“//table//tbody//tr//td[4][contains(href(),edit_data\u source\u group\u path(dat

Rspec 水豚:如何通过输入字段的ID来填充

我有这个: <input class="string optional" id="course_group_courses_attributes_2_name" name="course_group[courses_attributes][2][name]" placeholder="Lengua" size="15" type="text" /> </div> 如何通过ID填写该字段?fill\u in接受ID作

是否可以使用MacRuby和rspec来存根本机方法?

我正试图将rspec与MacRuby结合起来测试一个用Objective-C编写的框架 然而,似乎不可能使用这种方法来存根某些选择器。例如: Foo.stub(:currentSession).and_return(double("session")) 结果: RuntimeError: cannot remove method `obfuscated_by_rspec_mocks__currentSession' because it is a native method

如何判断当前运行的RSpec测试是否失败?

从spec文件的上下文之外,您如何/能够了解如何获取当前示例并检查其元数据 如果测试失败。RSpec目前没有提供用于访问当前示例的公共API(因为它在内部没有全局可访问的当前示例的概念),但是在挂钩之前使用全局单独公开这一点非常简单: RSpec.configure do |rspec| rspec.before(:each) do $current_rspec_example = self end end 然后,您可以从任何地方使用$current\u rspec\u exa

Rspec 是否有一种简单的方法将RackTest方法包括在水豚试验中?

Capybara 2删除了这些,并建议将它们分开,但在某些情况下,我们希望在测试中同时使用它们(通过视图启用api键,然后点击api,等等) 我尝试了包括include::Rack::Test::Methods,但我得到了: undefined local variable or method `app' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fb737932ba0> 未定义的局部变量或方法“app”# 我

思考Sphinx 3.0.1如何在使用Rspec进行测试时关闭增量索引

默认情况下,我已为所有模型启用增量索引: ThinkingSphinx::Index.define :book, :with => :active_record, :delta => (::Padrino.env == :production ? ThinkingSphinx::Deltas::SidekiqDelta : true) do 我想在运行Rspec时关闭增量索引(因为运行测试需要更长的时间,而且我还收到一个错误,即无法访问delta.spl文件:FATAL:无法打开d

Rspec 如何测试控制器中的新记录是否具有属性

我知道我可以使用assigns查看实例变量是否分配给某个对象,但如何测试是否设置了另一个属性 class UsersController < ApplicationController def new @user = User.new @user.name = "Tom Lehrer" end end describe UsersController do it "assigns a user" do get :new expect(ass

RSpec参数都是字符串、中断测试

我正在编写一些控制器/请求规范,目前正在处理一个更新请求。相当直截了当,在许多其他情况下,这是完美的工作,但我似乎遇到了一个障碍 在routes.rb文件中,我限制了控制器的操作 resources :model, except: [:destroy, :edit, :new] 为了避免在用户请求/new时调用show操作的问题,我添加了一个约束,因此路由现在看起来像 resources :model, except: [:destroy, :edit, :new], constraints:

Rspec测试设计具有抽象控制器错误的注册控制器

Rspec配置 RSpec.configure do |config| config.include Devise::TestHelpers, :type => :controller ... 路线 devise_for :users, controllers: { passwords: "users/passwords", sessions: "users/sessions", registrations: "users/registrations"} 关于会话控制器 class

Rspec 在chefspec中打开存根文件

您好,我正在使用chefspec进行测试,我发现以下错误 在/cookbook/wordpress/recipes/default.rb wp_secrets = Chef::Config[:file_cache_path] + '/wp-secrets.php' if File.exist?(wp_secrets) salt_data = File.read(wp_secrets) else require 'open-uri' salt_data = open('https:/

如何在不启用旧语法的情况下取消rspec 3中的发布?

我正在从rspec2升级到rspec3,希望使用新语法,而不是启用旧语法。但是我在我的顶层之前(:each)块中设置了一些存根,我有选择地unsub在我想要原始实现的地方 当我使用新的allow语法定义存根时,是否有一些等效的方法来删除存根?您可以使用 expect(Person).to receive(:find).and_call_original 这将额外检查原始的:find方法是否在person上调用了啊,我不知道我可以重新定义它。现在看来很明显!我还发现我也可以使用allow重新定义

Rspec 如何使用Capybara+;闹鬼

我有一个正在使用的textarea,我将onChange事件设置为它。我想用RSpec+Capybara+Poltergeist编写测试,以确认onChange事件正在工作 据我所知,浏览器中显示的文本区域实际上是带有“note editable”css类的div标记。如何设置文本并触发onChange事件 我编写了这样的代码,但出现了一个错误Capybara::ElementNotFound:无法找到字段“somelabel”: 编辑 我为此问题创建了一个示例应用程序: 原始HTML RSp

Rspec给我的选项无效--格式错误?

如果我在终端中键入以下内容 rspec spec --format documentation 然后我得到了这个错误 invalid option: --format 然而在这个网站上,它说它是有效的 我有Rspec的3.3.2版。它真的应该是这样工作的。我只是在我的应用程序中进行了尝试以确保它正常工作:rspec spec——格式化文档 您是否安装了多个rspec版本?检查一下 还有,试试这个: bundle exec rspec spec --format documentation

Rspec `要求';:无法加载此类文件--回形针/火柴(加载错误)

我使用的是rails 5.1.1和ruby 2.3.1 当我执行rspec时,我得到以下错误 `require':无法加载此类文件--回形针/匹配器(加载错误) 档案: gem“rspec-rails”,'>=3.6.0' gem“shoulda matchers”,“~>3.1” gem'shoulda callback matchers',“~>1.1.1' 我在spec_helper.rb中包含了以下内容 require "paperclip/matchers" config.inclu

Ubuntu18.04上的测试厨房因Rspec不匹配而损坏

我已经在同一个环境中运行测试好几个星期了,没有任何问题。就在今天,我开始犯错误: /opt/chef/embedded/bin/ruby -I/tmp/verifier/suites/serverspec -I/tmp/verifier/gems/gems/rspec-support-3.9.0/lib:/tmp/verifier/gems/gems/rspec-core-3.9.0/lib /opt/chef/embedded/bin/rspec --pattern /tmp/verifier

Rspec 是否存在一个类似的;然后给我看那一页;黄瓜?

我想在运行某些视图规范时看到html页面 如果我运行Cucumber,我可以使用“并向我显示页面”来实现这些目的。Rspec是否可行?您可以使用水豚和launchy gems,然后使用保存和打开页面,如本文所述。它提供了未定义的局部变量或方法保存和打开页面'`,我缺少什么?我必须将launchy添加到我的Gemfile中,而不仅仅是手动安装,才能让它工作。也许你可以确定你不需要那样做。

Rspec 命名错误:未定义的方法标题';零级:零级

我在使用RubyonRails和rspec方面是新手 当我尝试为Mymodel Controller执行rspec测试时,我遇到了这个问题 当我通过浏览器访问页面时,Mymodel正在按预期工作。。。但是当我执行rspec测试时失败了 class MymodelController < ApplicationController def show @model = Mymodel.find(:first, :conditions => { :title => "Mo

当我希望实际执行该方法时,如何处理rspec应该替换该方法?

我刚开始使用rspec should_receive,有很多问题,因为它“取代”了这个方法。例如: UserMailer.should_receive(:new_order).with(order) 为nil:NilClass提供未定义的方法“deliver”,因为rspec使该方法停止工作。如何处理此问题?您可以通过在方法链中添加和\u call\u original来处理此问题,如下所示: UserMailer.should_receive(:new_order).with(order)

需要rspec中的类名

我有两个不同的清单文件,一个是define,另一个是普通清单 class bfile { require dummy if $::operatingsystemmajrelease > 5 { file {'/some/path/foo': ensure => present, owner => 'root', group => 'root', mode => '0644',

活动管理员的功能rspec

下面是我的活动管理资源文件和rspec功能 当我运行rspec时…它失败失败/错误:选择全年,从:从财务月 Capybara::ElementNotFound: 找不到全年的选项 有人能帮忙吗 ****资源文件:我已经让jst发布了我的资源文件的表单操作,这与我面临的问题有关**** ActiveAdmin.register ------------(code) --------------------------------(code) form do |f| f.inputs do

rspec为失败的均衡器禁用差异

有没有办法在失败的eq匹配器上禁用差异计算 我的代码如下所示 object1 = MyCustomObject.new(param1) object2 = MyCustomObject.new(param2) expect(object1).to eq(object2) 如果发生了什么错误,而这些对象不相等 object1 == object2 # false rspec试图计算差异,但我的对象非常复杂,这导致我的PC和Ubuntu上的内存占用刚刚挂断。真的-我不需要这个差异,所以我只想禁用

比较相等时rspec中的自定义错误消息

是否可以向预期添加自定义错误消息,如下所示: expect(user.uid).to eq uid 我试过: expect(user.uid).to eq uid, "Custom message" 因为,但我想那是一个操作员匹配器。还有其他方法吗?正如您所说,基于Ruby的内置字符串、数字和数组操作符==,>,的Matcher不支持定制的失败消息。事实证明,我所做的基本上还可以: expect(user.uid).to eq(uid), "Custom message" 工作正常,只是我

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 26 页