Rspec have_标签与have_选择器

我已经成功地将have_选择器与RSpec(版本2.0.1)一起使用。我最近在have_tag上找到了文档。。。带着标签。。。与RSpec 1.3.2关联并希望使用它,但RSpec给出了错误: undefined method `has_tag?' for #<ActionController::TestResponse:0x105584e80> 我尝试了相同的语法,将“have_selector”和“with_selector”替换为“have_tag”和“with_tag”,在

水豚rspec更深入的测井?

在执行click_按钮后的某个时刻,我正在检索无法转储的singleton错误。rspec的所有输出告诉我: 1) home not logged in sign in should contain content with 'Add new charity Failure/Error: click_button "Install" TypeError: singleton can't be dumped # (eval):2:in `click_button' # ./spec/

Rspec 如何创建仅运行已更改的测试文件的保护配置监视?

关于如何在线执行此操作的信息不多,但在我的Guardfile中,我正在为我希望Guard监视的各种目录/文件设置监视。如何为已更新的已更改的spec/test文件指定监视,并仅在发生这种情况时运行该特定文件?谢谢 guard 'rspec' do watch(%r|^spec/.+_spec\.rb$|) { "spec" } end 当前,当spec目录下的文件发生更改时,上述程序将运行所有spec/测试。但我只想运行更改后的测试文件的测试 当前spec目录树

rspec未定义的方法`接收';对于expect语法

更改有效的测试,例如: describe "a" do it "does part A" do it "does not wait if not run in parallel" do ParallelTests.should_not_receive(:sleep) ParallelTests.wait_for_other_processes_to_finish end end end 到 给予 失败/错误:预期(并行测试)。不接收(:睡眠) 命

Rspec/capybara有_文本失败,但包括通过

我搞不懂这种奇怪的行为。 这会过去的 expect(html\u字符串)。包括重置url 这些将失败 expect(html\u字符串)。重置文本\u url expect(html\u字符串)。重置链接\u url 错误消息是预期会找到文本,但没有匹配项。所以这并不是一个忘记包含spec_helper的错误 我已经仔细检查了html\u字符串是否包含整个重置url。它们不是不可见的内容 另外,我还有其他规范(在同一规范文件中)使用have_text和have_link传递。 编辑:不知道为什么

Rspec 在水豚试验中,v-text-field改变时触发

我有这个规格: checklist_item_element.fill_in 'description', with: 'Changed description' page.find('body').click # to blur the input field checklist_item.reload expect(checklist_item.description).to eq('Changed description') 我有这个模板: v-text-field.habit-card

RSpec:获取将运行的所有示例的列表

我正在使用rspec3 在(:suite)之前的块中,我想获得将在当前规范运行中运行的所有示例的(嵌套的?)列表(即,当给定路径时),以便扫描它们的所有metatdata 背景:我希望能够扣除是否存在水豚规范,并在这种情况下启动前端服务器。您不必预先执行,将运行指定的代码 RSpec.configure do|config| 配置。当\u第一次\u匹配\u示例\u定义(:capybara)时 启动服务器 结束 结束 RSpec.description do 描述“非水豚”是什么 #仅运行此示例

Rspec 如何访问类的私有属性?

我无法访问对象的私有属性/变量以在rspec中进行测试 我了解到,您可以访问这样的私有方法: expect(CLASS.send(METHOD_AS_SIMBOL,PARAM1,PARAM2…)).to eq(EXPECTED_RESULT) 但我不能让它为属性工作 编辑: 我对不测试私有方法和属性的想法感到不舒服。我读过关于不测试私有代码是有益的,因为它迫使程序员简化类并遵循单一责任原则 但不知怎的,我觉得有必要这么做。这让我觉得,如果我100%地测试代码,我的代码将更加可靠。而且,我不喜

Rspec 如何在Chefspec中存根file.stat(“testfile”).uid?

我的配方中有一个代码::File.stat('/path/to/File').uid>=0,我想在chefspec中存根它 这就是我正在尝试的: 允许(文件).接收(:stat).并调用原始文件 allow(File.stat).to接收(:uid).with('/path/to/File')。并返回(0) 这给了我参数错误:参数数量错误(给定0,预期为1) 是否有办法存根File.stat,以便测试与uid的比较

Rspec部分问题

我正在为视图编写规范,它在布局中呈现了一个菜单(部分菜单)。我想为所选菜单编写规格。这是密码 it "should have User Administration link" do template.stub!(:render).and_return(:partial => "layouts/admin/menu") do_render #render :partial => "layouts/admin/menu" #do response.sho

Rspec Spork和db:试验:准备

我希望这个简单的问题有一些聪明的答案 我使用Spork运行我的规格和功能。效果很好。但是,如果使用迁移更新数据库,则在不停止两台spork服务器的情况下无法更新测试数据库。我是否可以让spork在不关闭数据库的情况下删除并重新创建数据库 我之所以问这个问题,是因为我可以在我的开发服务器运行时运行迁移,在我看来,我正在做完全相同的事情。也有同样的问题,并发现了以下问题: 根据那里的建议,我补充说: ActiveRecord::Base.remove_connection 到spec_helper

如何从irb内部试验rspec

例如,我想在irb中说b=double(“book”),然后处理结果 如果我说 require 'rspec' b = double("book") 我犯了一个错误。想法?您可以通过以下方式在irb中玩RSpec测试双打: $irb >需要“rspec/mocks/standalone” >b=双(“书本”) => # 很棒的提示!还有哪些其他…/独立选项?有吗?据我所知,这只是mock,但是您可以在您的mock对象上存根方法和设置消息期望,这非常方便。如果您发现任何有趣的内容,请更新此线程

为什么RSpec在windows上速度如此之慢?

是的,冒着风险让整个Rails社区超过我 。。。为什么RSpec在windows上速度如此之慢?我说的慢是指慢。47分钟内完成710个示例。分钟 与同一台电脑上的cucumber相比,183个场景和1280个步骤只需1.26分钟 RSpec-模型和控制器 Cucumber-所有可能的用户交互 我知道RSpec的速度很慢,但我肯定想知道为什么每个示例平均花费4秒。我已经运行RSpec向我展示了最慢的前10名,但它似乎是一个“一般”的慢度,而不是任何特别的慢度 我是一个“快乐的windows用户”(

ActiveAdmin/Rspec-ActionView::Template::Error(未定义的方法`action_methods';用于nil:NilClass)

我最近将我的测试从Cucumber/Capybara转换为Rspec/Capybara。我正在使用ActiveAdmin。当我用Cucumber对ActiveAdmin运行测试时,测试运行,一切都通过了。当我使用Rspec运行测试时,我收到: Rendered /home/vagrant/.rvm/gems/ruby-2.0.0-p451/bundler/gems/active_admin-d11c0a56504a/app/views/active_admin/resource/index.ht

无法使用RSpec测试获取水豚截图

我查阅了Github文档,通过谷歌搜索找到了答案,但没有找到为什么水豚截图没有保存任何失败截图的答案 这是我目前为我的应用程序所做的设置 Gemfile group :development, :test do gem 'meta_request' gem 'factory_girl_rails' gem 'faker' gem 'rspec-rails', '~> 2.14.1' gem 'capybara' gem 'capybara-webkit' gem

水豚原';当';rspec规范';使用,但仅当';rspec规范/特征';使用

该问题基本上在主题中描述。我真的不知道这个问题是RSpec问题还是水豚问题。我还没有在网上找到任何关于这个问题的信息,潜入水豚的代码也帮不了我。 我正在使用capybara webkit驱动程序。它真的只是没有启动服务器,还是在运行0个示例时正确结束?所有示例都失败,因为服务器没有启动。

Rspec 如何避免在模拟被测试实例内的方法时使用的allow_any_instance_

我想测试一个新对象的initialize,在这个initialize中调用了一个我需要模拟的方法(这个方法要求用户输入一个名称…典型情况) 这是可行的,但是使用allow\u任何\u实例 如果没有允许的任何实例,我如何测试它?,因为我已经读到它不应该被使用 非常感谢如果您想在initialize函数中使用call私有方法,我怀疑除了允许的任何实例之外,没有其他方法。在方法定义中使用字符串literal名称,是错误的语法 但是,您可以重构代码,使用TestDouble来更轻松地进行测试 下面的代码

如何检测rspec文件是否作为测试套件的一部分运行

从spec文件内部,我如何检测该文件是作为测试套件的一部分运行还是单独运行。如果它是自己运行的,我想要详细的输出,但是如果它是多个文件中的一个,那么我想要抑制输出 例如,如果文件是'spec/models/my_model_spec.rb',我想区分 rspec spec 及 我在我的spec\u helper.rb文件中发现了这个注释: # Many RSpec users commonly either run the entire suite or an individual # fil

实例变量和rspec2.x出现问题

我正在使用RSPEC2.0。我不明白这里的范围是如何工作的。。。不知何故,您可以读取任何块中的变量,但我无法更新它?为什么呢 describe 'Test App' do before(:all) do @test= :blah end it 'test' do @test=:bye p @test # => prints bye end it 'test' do p @test # => prints blah

我可以只为一个参数调用重写RSpec中的方法吗

我在几个项目中有一个功能启用机制(一个使用RSpec1和Rails2,另一个使用RSpec2/Rails3),我正在寻找一种更好的方法来覆盖一个功能,而不必对其他功能做任何事情。最后,我正在寻找一种方法,在使用特定参数调用方法时,将其存根,并在其他情况下正常运行 关闭: Project::Config.should_receive(:feature_enabled?).with('new_feature').any_number_of_times.and_return(true) get :in

rspec:未定义的局部变量或方法'be#u true';

我正在使用rspec2.4.0和cucumber0.6.4。我正在运行一个简单的场景(为了这个问题): 使用步骤定义: require 'rspec' require 'rspec/expectations' When /^I test something$/ do result = (1==1) result.should be_true end 当我运行此场景时,会遇到以下问题: undefined local variable or method `be_true' for

RSpec:方法内部外部对象的存根方法调用

我正在尝试在方法中存根方法的行为: class A def method_one(an_argument) begin external_obj = ExternalThing.new result = external_obj.ext_method(an_argument) rescue Exception => e logger.info(e.message) end end end 规格: 但是,永远不会引发异常 我也试过: it "sh

Rspec “测试”;验证…,格式=>;加上;

我有一个具有此验证的用户模型 validates :name, :lastname, :format => {:with => /^[a-zA-Z]+$/, :message => 'Only letters and spaces allowed.'} 我不知道如何正确地测试它 我已经完成了一个函数,它返回一个由a-zA-z字符数组中的10个字符组成的随机字符串 def get_random_name "abcdefghijklmnopqrstuvwxyzABCDEFGH

Rspec 在测试运行时切换代理

我们正从水豚网络套件迁移到恶灵。之前,我们确实使用了水豚webkit,您可以在这里看到: def use_proxy_with_vcr cassettes_name = nil, cassettes_options = {} page.driver.browser.set_proxy(:host => Billy.proxy.host, :port => Billy.proxy.port) page.driver.browser.ignore_ssl_errors Bil

bundle exec rspec spec/requests/static\u pages\u spec.rb错误

正在使用的版本: 轨道-3.2.13 Ruby-Ruby 1.9.3p429(2013-05-15修订版40747)[x86_64-darwin11.4.2] 我跑 $rails生成集成\u测试静态\u页面 得到 invoke rspec create spec/requests/static_pages_spec.rb 遵循Rails Hartl教程第3.2.1节。 运行时出现以下错误: $bundle exec rspec spec/requests/static\u pages\

Rspec Capybara 2.1错误未初始化常量轨道(NameError)

我刚刚将我的水豚宝石从版本1升级到2.1.0(最新版本)。基于Capybara自述,我在Spork.prefork块内的spec_helper.rb中添加了以下几行 require 'capybara/rspec' require 'capybara/rails' 但是,我犯了一个错误 /home/user_1/.rvm/gems/ruby-1.9.3-p392/gems/capybara-2.1.0/lib/capybara/rails.rb:6:in `block (2 levels) i

Rspec 我应该如何编写401重定向的预期?

这将返回: #excerpt subject { response } its(:response_code){ should eq 401 } it { should redirect_to '/sign_in' } 我以为401是一个重定向?或者rspec的redirect_to方法是否专门查找302?响应代码是否表示未经授权?那么,如果有人想访问受限区域,并因为未经授权而被重定向到其他地方,会发生什么情况?尽管他们因为未经授权而被重定向,但重定向应该是正常的302吗?我什么时候给他们40

Rspec:如何将错误消息添加到您希望的?

我正在测试导入的对象,如下所示: %w(fields to test).each do |field| its(field) { is_expected.to eq original.send(field) } end 如何在此设置中添加错误表以便知道哪个字段失败?尝试将第二个参数添加到eq,但它预期会失败 它是这样做的,但不雅观: specify do expect( subject.send(field) == original.send(field) ).to be_

Rspec 最佳实践:在Jenkins中测试使用Berkshelf的chefspec

我想将我的ChefSpecs与Jenkins集成在一起,这样一个Jenkins作业可以运行所有烹饪书的所有规格,并打印一个摘要。不幸的是,这似乎不像我想象的那么容易。编写一个简单的Rakefile来创建一个rspec-rake任务(比如在测试标准Ruby规范时)不会有帮助,因为rspec希望在调用它的目录中有一个Berksfile 所以,似乎只有两种方法可以测试烹饪书的规格 为每一本烹饪书创造一份詹金斯工作 手动迭代Jenkins中的食谱,并在我找到的每本食谱中调用rspec。它不会打印所有测

Rspec:成功(非成功)通过

在我的一次测试中,我注意到我的回答检查有一个输入错误,expect(response)。to_success而不是expect(response)。to_success。考试通过了。为什么考试还是通过了 响应。成功?返回: Failure/Error: response.succes? NoMethodError: undefined method `succes?' for #<ActionController::TestResponse:0x007fe6e22a

如何在RSpec中绕过'with_lock'块

我有一个代码块,它在调用优惠券的方法之前锁定优惠券的数据库表 coupon.with_lock do apply_user_coupon!(coupon) end 我如何测试这个?我根本不在乎锁。。。我只想让测试继续进行应用用户优惠券方法,但我不知道如何绕过测试的锁定部分。我该怎么做 请注意,块不带参数。在it或before块中,您可以删除功能并让块实际运行 在it或before块中,您可以删除该功能并让该块实际运行 产出什么?有些区块不在乎产出什么。这是完美的为那些和产量什么?有一些

如何使用Rspec模拟[]函数?

使用Rspec,我可以模拟Dir.glob(“/my/Dir/*.tmp”)这样做: expect(Dir).to receive(:glob).with("/my/dir/*.tmp") 如何模拟Dir[“/my/Dir/*.tmp”] expect(Dir).to receive(:"[]").with("/my/dir/*.tmp")

Rspec(设置标志时运行)

如何仅在设置标志时运行rspec测试 我使用的是Stripe Ruby Mock,他们使用live标志。但是,我不希望在未设置-t live时运行测试 bundle exec rspec-t live spec it "should run rspec test, only when live is true", live: true do expect('value').to eq('value') end 目前,我的测试在设置了-t live和未设置时运行 您可以设置环境变量: LIV

RSpec-获取迄今为止发生的错误数

是否有方法访问或统计在特定点发生的故障数?例如,在我的第一个描述块的末尾,我想看看发生了多少次故障。我知道最后会打印出来,但我现在就要:)这个问题是重复的。请看下面的答案:

Rspec Rails教程7.2.2用户控制器问题

我在Michael Hartl的Rails教程的第7.2.2节(第7章)中,当我在app/controllers/users\u controller.rb中添加@user变量时,事情变得很奇怪。现在应该通过的测试没有通过,而是因为不同的原因失败了: $ rspec spec/requests/user_pages_spec.rb -e "signup page" Failures: 1) User pages signup page Failure/Error: before { vi

Rspec 使用Selenium remote webdriver&;HTTP基本身份验证

嗨,智者社区! 在使用远程Webdriver进行测试时,有没有处理Selenium 2(rpec和capybara)的基本身份验证的想法?喜欢Internet Explorer 9吗 我所尝试的: 我没有使用RackTest。我确实使用了Selenium网格和远程Webdriver。 我不想使用“访问”http://user:password@com/“因为这对IE9不起作用(并且Reg密钥更改为允许它对Win7/IE9不起作用) 我读过。有很多具体的想法,但我看不到支持远程Webdriver和

Rspec 利用“工厂女孩”来创造一种个性特征有很多关系

我想干掉我的测试套件。试图创造一种特性来代表一个产品的特定价值在父工厂中有很多关系。理想情况下,这些值将由单独的工厂创建 我想这样做: factory :room do trait :bathroom do type :bathroom end end factory :house do trait :one_bathroom do association, :rooms, factory: [:room, :bathroom] end end 如果房屋

如何在rspecCapybara中测试javascript?

我使用javascript库clipboardjs将输入字段值复制到系统剪贴板 在my application.js中: function addressClipboard() { new Clipboard('.address-copy', { text: function(trigger) { var addressString = ""; addressString += $('#addresses_attributes_0_stre

Rspec 查找没有特定类名的元素

这和我以前问的这个问题是一样的-。我能够基于使用类名资产卡可选项添加特定数量的元素 目前,我希望单击更多元素,将它们添加到现有集合中。我的困境是: 未单击元素时,类名为:图像卡资产卡可选 单击某个元素时,selected将附加到类名:image-card-asset-card-selected-selected 在我的例子中,我试图寻找只显示图像卡资产卡可选且不包括选定的其他元素。我不知道如何明确定位它们 有没有一个正则表达式解决方案或其他方法来解决这个问题?找到没有特定类的元素的最简单方法

Cucumber中的Rspec期望:在类中使用未定义的方法“be”

我在cucumber框架中使用rspec期望值,在步骤定义级别使用时,它们看起来很好 我已将env.rb文件配置为: require 'rspec/expectations' World(RSpec::Matchers) 我现在注意到的问题是,如果我试图在某个步骤中使用的对象的方法中使用rspec,那么我就失败了 E.g. Steps_definition.rb service.use_rspec class Service def use_rspec header

Datatables.net和rspec,测试完成处理

我用的是水豚和幻影。 似乎有了这个驱动程序,capybara并不总是等到ajax处理完成,所以我随机获取红色规范。 有没有办法在rspec中测试datatable是否已完成记录加载?从上一个类似的问题中,您可以将您的ajax选项还原为旧的fnServerData,您的规范应该可以再次运行。但不确定为什么使用ajax不起作用

Rspec测试延迟工作

我的应用程序中有一些复杂的、长期运行的延迟作业流程。我使用Rspec来测试流程中使用的各个方法和类,但我也希望使用不同的测试数据执行许多端到端的后台工作 我在延迟工作维基上找不到关于这个的任何东西,所以这个问题看起来很有趣,但我真的不明白这里发生了什么。 我可以使用工厂轻松设置测试数据,然后调用启动后台处理的类。我预计测试需要很长时间才能完成 编辑的背景代码 class Singleplex def perform(batch_id,user) batch = sta

定义一个自定义rspec匹配器,该匹配器的实现随元数据而变化

使用rspec3.3,我希望有一个匹配器,它根据示例的元数据具有不同的实现(事实上,它是根据rspecrails的示例的:type) 但是,我看不到任何一种方法: 为不同的元数据定义不同的自定义匹配器(使用相同的名称)(就像包含帮助器方法模块一样) 从matcher访问运行示例的元数据(就像访问运行示例的方法一样) 例如,我可以: RSpec::Matchers.define :some_matcher, type: :request do |expected| #implementat

RSpec';即使使用测试子集重新运行,s种子是否仍保持顺序?

由于测试顺序的原因,我有一些测试在RSpec中间歇性失败(如果我使用RSpec--seed 1234 spec重新运行套件,我每次都可以重现失败)。在调试和修复此问题时,我希望将为更快的反馈循环而运行的测试仅限于导致失败的测试 例如,如果我运行完整套件(rspec--seed 1234 spec),则在spec/models下有一些测试失败,但如果我运行rspec--seed 1234 spec/models,则测试通过 我试图弄清楚这是否是因为导致初始故障的是spec/models之外的测试,

Rspec共享示例:助手方法中的访问参数

假设我创建了一个带有一个参数的Rspec共享示例组(测试的业务目的无关,它是我当前代码库的一个过于简化的版本): shared_examples“some example group”do|参数| 它“做某事”做什么 放置“参数=#{parameter}” 打印\u参数 结束 def print__参数 放置“参数=#{parameter}” 结束 结束 我可以将参数作为变量访问,只要使用它测试块即可。然而,当我试图从一个方法访问参数时,我遇到了一个“未定义的局部变量或方法”。为什么呢?我已经

Rspec期望触发两次

在Rspec(3.9版)中测试自定义类时出现一些奇怪的行为 代码 class AlertMaster def initialize(params = {}) ... end def send_alert 1.upto(2) do |attempt| begin self.alert_me break rescue => e

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