如何在RSpec和Cucumber中定义路径

我正在阅读Bigg和Katz的《Rails 3 in Action》,这是我第一次使用RSpec、Cucumber和Capybara RSpec团队大胆地说:“所以我一直在遵循书中的概念,因为RSpect不再提供像path.rb或web\u steps.rb这样的初始步骤 我的问题是如何创建一条路径,就像在一个将水豚放在所需页面上的规范中一样 在这本书中,它被告知将以下内容放在path.rb中(由RSpec提供) 年,Aslak指出,他发布了一本书,旨在为处于你这种情况的人解决这个问题。我建议您

Rspec 工厂女工不打扫?

有人知道一种不用清理数据库就可以使用FactoryGirl的方法吗?换言之,在使用工厂的同时保留完整的现有记录?编辑:尝试这样做会产生数据库错误,因为新ID与数据库中的现有ID冲突 我想最大的问题是让FG使用数据库的底层序列/自动增量功能。(以前测试失败的错误数据与我无关。) 这类似于,但我对任何方法都持开放态度。Rails应用程序的标准RSpec行为是在每个示例之后回滚数据库事务。这可以在spec/rails\u helper中配置: RSpec.configure do |config|

使用bundle exec rspec spec时如何运行rspec标记的测试?

当我想要运行标记的测试时,我使用 rspec spec --tag smoke_test_not_present 我的系统中有一个关于旧宝石的错误。一个常见的错误 列出并通常有效的解决方案是使用bundle exec 我想运行标记的测试 因此,我: bundle exec rspec spec --tag smoke_test_not_present_this_does_not_exist 但是所有的测试都会运行,不管我引用的(不存在的)标记是什么 我得到: $ bundle exec rs

如何转换旧的rspec语法;它{不应该是有效的};到rspec2?

从旧rspec语法转换为新语法: 旧的: 使用较新的expect语法,it部分应该是什么样子?使用expect语法,测试将是: it { is_expected.not_to be_valid } 请注意,对于单行程序语法,仍然支持should语法(即无弃用警告),因此不必进行任何更改。从: is_expected仅定义为expect(subject),专为使用rspec expections及其新的基于expect的 语法 should是在rspec期望只有基于should的语法时设计的。

找不到bash错误rspec命令

我是ruby/rails的新手,在一次任务中,我在命令行中遇到了以下错误: -bash:rspec:未找到命令 我在安装rspec gem后收到此错误: gem安装rspec 以下是我尝试过的几件事: -bash:rspec:command未找到Jackies MacBook Pro:Addressbloc jackieturner$aptitude安装libgemplugin ruby -bash:aptitude:command未找到Jackies MacBook Pro:addressbl

Rspec Ruby Spinach Html结果页

我刚刚开始研究Spinach BDD框架,我真正想做的一件事是生成一个类似于rspec选项的结果HTML页面: --格式化html --out rspec_results.html 有人知道用菠菜来达到这个目的吗? 谢谢 我发现有人创建了格式化程序。 我发现有人创建了格式化程序。

水豚,Rspec如何单击跨度元素

问题 失败 Capybara::ElementNotFound:这看起来应该可以正常工作,因此该元素可能没有足够快地显示在页面上。您可以尝试将Capybara.default\u max\u wait\u time设置为类似30的值并重试吗?您可以在spec\u helper.rb中为其编写一个示例,您可以通过添加Capybara.default\u max\u wait\u time=30来设置默认等待时间。然后重新运行测试,看看是否通过。 <span _sort="view.sub_d

在安装2.4时,使rspec 1.3正常工作?

我有一个Rails 2.3.X项目正在进行中。在我的系统上,我也有各种版本的rspec: rspec(2.4.0,1.3.1) rspec核心(2.4.0) rspec期望值(2.4.0) rspec模拟(2.4.0) rspec钢轨(2.4.1、1.3.3、1.3.1) 然而: > spec _1.3.1_ spec/ Missing these required gems: rspec-rails 安装rvm并为wo项目创建不同的版本。您可以为这些项目使用单独的绑定程序。您

RSpec脚手架控制器,了解给定的默认值

我正在学习rspec教程(peepcode教程)。我制作了一些脚手架,我希望有人能帮助解释如何重新编写描述,让新手看得更清楚一点 describe "POST create" do describe "with valid params" do it "assigns a newly created weather as @weather" do Weather.stub(:new).with({'these' => 'params'}) { mock

rspec和Cumber的总覆盖率结果

在转到ruby 1.9.2并覆盖我之前,我使用的是rcov。我们不倾向于对控制器进行单元测试,而是依赖于覆盖率。使用rcov,可以汇总Cumber和rspec运行的覆盖率结果。这可能是我的封面吗?这是我最后制作的Rakefile,你可以获得rspec、cucumber或两者的组合的封面: namespace :cover_me do task :report do require 'cover_me' CoverMe.complete! end task :all

如何使用rspec测试签名或永久cookie?

我可以通过以下方式为请求编写cookie: request.cookies['foo'] = 'bar' 但这些都不起作用: request.cookies.permanent['foo'] = 'bar' request.cookies.signed['foo'] = 'bar' request.cookies.permanent.signed['foo'] = 'bar' # what I really want 我收到空的散列消息,如以下消息: NoMethodError: u

相当于rspec';让我们进入测试::单元?

有谁知道在test::unit和rspec的:let和:let!?例如 context "foo" do let(:user) { Factory(:user) } it "bar" do ... end end 我希望在编写test::unit tests时使用这种方便的模式。 提前谢谢。像这样的东西送给let: def user @user ||= Factory(:user) end 对于在测试之间不缓存的let,您将需要与上面相同的定义,并在设置中或拆卸中执行

与法拉第和Rspec的碰撞

我有一个这样的模型: class Gist def self.create(options) post_response = Faraday.post do |request| request.url 'https://api.github.com/gists' request.headers['Authorization'] = "Basic " + Base64.encode64("#{GITHUB_USERNAME}:#{GITHUB_PASSWOR

Rspec 将多个请求存根到同一uri

我想对不同的请求参数使用相同的uri,我如何才能做到这一点? 下面的示例似乎不起作用( 从文档中可以看出,with子句是不正确的(您应该使用body:{email:foo@bar.de“}或类似内容) 根据文档所述,with子句不正确(您应该使用正文:{email:foo@bar.de“}或类似内容) stub_request(:post, "http://tests/1/users/create"). with({email: 'wrong_format'}).

两个rspec实例,它们是否相互干扰?

我一直在摆弄Guard,试图让它加载rspec测试,但它抛出了一些关于测试模式的错误 我意识到我在后台的另一个终端窗口中对整个测试套件运行rspec(大约需要30分钟)。我看了看,这些测试也抛出了错误(预计不会) 是否只有一个“测试”数据库,两个rspec执行都会弄乱,从而导致彼此失败?或者我可以不必担心地同时运行进程吗

Rails Rspec工厂功能测试:未注册

rails5.0.4ruby 2.5.1rspec3.7capybara 我需要一些关于创建工厂以及如何在我的功能规格中使用它们的帮助。我总是遇到同样的问题,当我认为我已经解决了,我又遇到了同样的问题 型号: customer.rb has many jobs job.rb belongs to customer has_many hours hour.rb belongs to job 工厂: #customer.rb FactoryGirl.define do factor

如何在rspec中测试rescue子句中的代码

我的代码中有以下模式: 关键是我们需要以静默方式记录错误,但是如果代码中有错误,测试就需要失败 begin self.a_method_call some_other_object.a_method_that_has_been_refactored rescue StandardError => e Rails.logger.error e.backtrace end 如果由于self.a\u method\u call和some\u other\u object.a\u m

铁路3 rspec问题

我正在试火车。我正在使用 网站了解更多关于rails3的信息;本教程从一开始就非常好(我对rails2的经验很少) 我与rspec有一个问题,目前阻碍了我的进度。我看到教程推荐使用rspec2.0.0.beta.18 gem;我改为使用安装rspec2.0.0.beta.20 gem bundle install 但是,我发现这个版本的rspec存在问题 我的集成测试rspec如下所示: describe "LayoutLinks" do it "should have a About p

Rspec 在Windows操作系统上的Rubymine 3.1中安装Cucumber时出现问题

我正在尝试在Rails 3.0 RubyMine 3.1中安装cucumber插件,但仍然无法安装它。我想安装cucumber,以便RubyMine 3.1 IDE可以像生成脚手架一样生成cucumber 参考: 提前谢谢 如果您已经安装了正确的gems rails、rspec、cucumber等,您应该能够通过RubyMine运行rails生成器 Ctrl+Alt+G应该会显示对话框窗口。之后,只需在动态下拉菜单中选择“生成器”选项。您将看到另一个对话框,询问发电机选项。类型:cumber:安

';功能';和';情景';来自水豚的别名抛出一个';未定义的方法';与RSpec一起使用时出错

看起来这些别名没有正确加载。我正在使用Rails3.X、RSpec2.8和Capybara1.1.2编写一些集成测试。 我认为我的Capybara安装是成功的,因为它可以使用标准的“descripe”和“it”标记,但是来自Capybara的“feature”和“scenario”别名会抛出一个“undefined method”错误 我在文档中没有看到任何提及更多配置的内容: 我只是在spec_helper.rb中添加了'require capybara/rspec',似乎无法将descrip

rspec:“是的;没有要加载的此类文件--rspec/mocks";

我试图在一些非常简单的Ruby上运行一个测试。我的linux机器上安装了ruby和rails。我还安装了rspec。我的创业板名单是: LOCAL GEMS actionmailer (3.2.8) actionpack (3.2.8) activemodel (3.2.8) activerecord (3.2.8) activeresource (3.2.8) activesupport (3.2.8) arel (3.0.2) builder (3.0.0) bundler (1.2.0,

Rspec 我可以运行Rails引擎吗';安装它的真实应用程序的s规格?

我有一个Rails引擎,旨在为我们更大的项目提供一些模型和控制器。引擎有一套相当不错的规格,在引擎的虚拟应用程序中使用了一堆模拟和一些全尺寸模型和控制器,以确保引擎正在做它应该做的事情,并与更大的应用程序一起工作 然而,即使所有测试都通过了,当我在更大的应用程序中更新引擎时,我也经常发现行为不正常。如果我的测试通过了,但是行为被破坏了,很明显测试出了问题,但是什么呢?我嘲弄得太多了,还是不够 为了让我更清楚地了解这一点,我希望能够从完整的应用程序内部运行引擎的测试。这似乎应该是可能的,但我对rs

Rspec Rails工厂女孩在一个规范和交易中间回滚

我正在我的小组模型上测试一种方法。它依赖于通过工厂创建一些徽章类型 这是密码 it "add itself to badges with method add_to_badgetypes" do badge = FactoryGirl.create(:badgetype) old_badge_ids = badge.group_ids.split(",") badge2 = FactoryGirl.create(:badgetype, :group_ids => "

Rspec请求规范和会话值

我正在编写一些请求规范(rspec2.13.1),并希望直接访问会话散列。我认为这在控制器规范中是可能的,但不确定这是否可以在请求规范中实现 describe 'Api' do let(:user) { FactoryGirl.create(:user) } session[:auth_token]=user.auth_token 我得到以下错误: Failure/Error: session[:auth_token]=user.auth_token

rspec无法使用require\u all查看我的lib文件夹中的对象

我计划使用rspec进行集成测试,使用cucumber进行应用程序的验收测试。我希望对这两个对象使用相同的页面对象。我已经将我的页面对象放在lib目录中,并且我已经设法让cumber看到这些对象,但是由于某些原因,rspec无法看到lib文件夹中的对象 我尝试过使用require_all方法。因此,我的等级库助手具有以下功能: $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'require_a

绑定.pry被rspec忽略

我希望在执行rspec期间在我的控制台中打开一个pry会话。我做错什么了吗?还是期待错误的行为 档案: group :development, :test do gem 'rspec' gem 'rspec-rails' ... gem 'pry-rails' ... end Gemfile.lock: ... pry (0.10.0) ... rspec-rails (3.0.1) 规格: 控制台: % rspec ... Failed examples: ... R

Rspec 如何测试我的表单助手

我已经编写了一个rails表单助手,但我不知道如何为它编写测试。有人能帮忙吗?这是帮助代码 module FormHelper def dropdown(form, obj_symbol, options, selected_value) form.select obj_symbol, options_for_select(options.collect { |s| [s[0].titleize, s[0]] }, selected: selected_value), {}, {:c

RSpec:如何获得示例ID的最终列表

我想运行特定的rspec示例,并且已经在命令行中指定了行号来执行此操作。但是每次我改变一些东西,行号就会改变,这是一种痛苦 rspec能够通过“id”在命令行中使用以下语法运行特定示例或一系列示例: rspec path/to/a_spec.rb[1:5,1:6] # run the 5th and 6th examples/groups defined in the 1st group 有没有办法让rspec列出所有示例ID,这样我就不需要手动梳理代码计数描述,上下文,it,场景,等等。手动

Rspec 继承工厂的FactoryGirl关联

我是Rails测试新手,在测试我的关联时遇到了很大的困难。我只想为我可以在规范中创建的具有各种角色的确认用户创建工厂。我只想拥有user=create(:user\u superadmin)或user=create(:user\u accountadmin)的能力,但我很难做到这一点 以下是我在运行规范时遇到的错误: Failure/Error: user = create(:user_superadmin) NoMethodError: undefined metho

为什么“have”字段“水豚匹配器返回”;“没有匹配项”;我的rspec测试中的隐藏字段?

我试图断言,input[type=hidden]在Rails请求规范中填充了一个值,但是水豚have_字段matcher返回“no matches”,即使我检查response.body字段肯定在那里 例如,我尝试了以下方法: expect(response.body).要有_字段('after_create_path',with:'/some_path') expect(response.body).to have_field('after_create_path',type::hidden,

Rspec webmock以400状态返回,同时返回一个主体

我正在使用webmock编写测试,我需要模拟远程api以返回400状态,其中包含正文内容 如果我只是将状态从200更改为400,有一个body,我收到的状态将变为200 let(:stub_result) { { result: 'failed', reason: 'blabla' }.to_json } let!(:quote_stub) { stub_request(:post, 'http://example.com/rest')

从before(:all)块中获取RSpec示例组名

基本上,这个问题与此类似: 我有这样的代码,它可以工作: config.before :each do |test| p test.example.metadata[:example_group][:full_description] end 现在,我还需要从before:all中获取示例组名。我该怎么做?试试这个: config.before :all do |test| p test.class.metadata[:example_group][:full_descriptio

Rspec 如何测试定制的Padrino FormBuilder?

假设我们在Padrino中有一个自定义FormBuilder,如下所示: class CustomFormBuilder < Padrino::Helpers::FormBuilder::AbstractFormBuilder def foo(arg1, arg2, ...) # do something with #template end end 我不清楚如何做到这一点: 通常框架会实例化FormBuilder,所以我在这里这么做感觉不对。有更好的方法吗 我不知道如

Rspec 如何使用powermock部分模拟外部方法调用

我有两门课。 说出ServiceLayer.class和apiadapter.class: public class ApiAdaptor { public String getCountry(String latitude, String longitude) { // REST call to api goes here and a the country string is returned return country; } } public class Ser

当结果为随机时,运行两次rspec测试

我有一个99%置信限的算法。所以如果我设置一个这样的测试 let(:valid_input_signal) { randomly_generate_signal_plus_noise } it { expect(my_detector(valid_input_signal).signal_present?).to be true } 它将失败1%的时间。我可以编写一个测试,在数千个有效的输入信号上运行我的_检测器,并检查它只失败1%的时间,但这将需要很长时间才能运行,测试的目的不是检查算法是否

在使用RSpec进行测试时,如何正确捕获Sidekiq worker中的错误?

我有一个相对简单的工人,他使用Excon从互联网上获取一些东西。我试图成为一名优秀的测试人员,并使用Webmock强制对internet交互进行存根,因此我实际上是在测试基于各种存根交互的代码应该做什么 我注意到RSpec没有捕捉到发生在工人内部的故障。这可能是我的代码,可能是个bug,我不确定 下面是一个简单的工作者示例(是的,我知道营救异常很糟糕,我将在下一步修复它): include Sidekiq::Worker sidekiq_选项队列:“获取文章内容”,重试:true,回溯:true

Rspec &引用;失败/错误:无法从回溯中找到匹配行;使用webkit运行capybara时

当我像这样运行:focus=>true时,效果很好: it "should send by email to new user", :js => true, :focus => true do ... end 然而,当我删除:focus=>true并运行完整的测试套件时,我在该测试中得到了这个错误 Failure/Error: Unable to find matching line from backtrace 这似乎与:js=>true有关,可能因为这是我开始使用它的第一

rspec的单行程序更改语法

当我尝试为rspec的change方法编写一个oneliner时,出现以下错误: 预期结果已更改为nil,但未提供块 这是我的语法: it { is_expected.to change(user.name).to nil } 什么是正确的语法?单行语法在这里没有意义。它用于检查对象的属性或方法返回值 但在这里,您要求检查属性是否更改为nil,这意味着您正在执行导致状态更改的某些操作,并且之前的值不是nil 只有一行不能指定该操作。正确的语法是 it "description" do ex

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