在rails中使用Rspec进行控制器测试

我是Rails和Rspec的新手。 我的Rspec文件未采用控制器的属性(作为实例变量) 它总是给出错误: You have a nil object when you didn't expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.new_record? 有人能找到这个问题的解决方案吗?您的控制器方法应该是创建一个新的模型实

rspec:quot;的确切含义是什么;例如;对于'let'的缓存?

提到let的值在同一示例中被缓存: 使用let定义已记忆的辅助对象方法。该值将被缓存 跨同一示例中的多个调用,但不跨示例 它并没有确切地说明什么是“示例”,但我认为它是指最顶层的描述或上下文块。对吗?如果是这样的话,您能否链接到明确说明这一点的文档 在其他地方,文件注意到以下内容: descripe方法创建一个示例组。在经过的街区内 要进行描述,可以使用描述或 上下文方法,或者您可以使用它声明示例或指定 方法 那么,“示例”是context/descripe块还是it块呢?简而言之,let值的范

RSpec1.x到RSpec2.x(Rails2.x到Rails3.x)

我正在将Rails2.x应用程序转换为Rails3.x。Rails2.x项目的规范以当前所有通过的方式执行 但是,在将规范移动到Rails 3.x应用程序后,规范将消失,无法找到Rails.root+'/lib'目录中定义的基类SmsCommand::base。我试着用rspec path_to_spec、rake spec和bundle exec rspec path_to_spec运行规范,但都没有用 我担心这可能与目录嵌套有关。例如: /spec/models/sms_commands/a

rspec rails请求规范(或集成测试)的良好文档

我正在寻找关于如何使用rspec和rails进行请求规范(我也看到过称为“集成测试”)的任何文档或参考资料 该页面显示了自述文件中关于“请求规范”的一个片段,这是我想要进行的测试(完整堆栈测试) 这种测试中使用的所有方法都有参考资料吗,比如如何使用fixture、cookie、会话、重定向等 实际上,上面使用的have_selector方法是否有rdoc?我还没有找到用于此的API或rdoc。也许我错过了什么 谢谢 have_选择器是Webrat的一部分: 水豚提供了更大范围的匹配器: de

在Rspec文件中,共享示例在示例列表的末尾执行

我对共享示例的执行有异议。共享示例总是在示例列表的末尾执行。如何按顺序运行所有示例 我已经分享了示例规范,它看起来像 sharedExamples_spec.rb shared_examples "upload jar" do |msg| it "shared examples group" do sleep(10) p "hello there :2 #{msg}" end end 在其他规范文件中 require 'sharedExamples_spec.rb'

如何使用MongoMapper设置Rspec和Factory girl

我与ActiveRecord、Rspec和FactoryGirl有一个香草rails 4项目 需求发生了变化,我们转而将数据存储在MongoDb中。我们正在使用MongoMapper进行模型映射 我没有从项目中删除ActiveRecord,我只是停止使用它并删除了所有ActiveRecord::基类(它们现在实现了MongoMapper模块) 我需要做什么来配置Rspec+FactoryGirl,以便所有FactoryGirl工厂都与MongoDb对话 我对Rspec和FactoryGirl假设

Ruby+;Rspec:我应该如何测试attr_访问器?

我有一个ReturnItem类 规格: require 'spec_helper' describe ReturnItem do #is this enough? it { should respond_to :chosen } it { should respond_to :chosen= } end 类别: class ReturnItem attr_accessor :chosen end 这似乎有点乏味,因为几乎每个类都使用了attr\u访问器。在rspec中是否

使用';他们';而不是';它';在RSpec中

我有一组更准确地引用一组对象而不是单个对象的示例。“他们‘应该做/成为x’”更有意义,例如: describe ArrayElements do they 'are ordered' do ... end they { should all_be_identical } end 是否可以将RSpec 3配置为接受它们?您可以在配置RSpec时使用alias\u example\u to为它配置别名(例如在spec\u helper.rb中): 例如,您还可以使用它在以这种

Rspec 如何在mac上使用Appium为android设置应用程序路径

我想知道如何在我的mac上设置android应用程序的应用程序路径。对于iOS,您可以下载应用程序,然后在所需功能中提供路径 我无法将android版本的应用程序下载到我的mac电脑上,但据我所知,我可以使用android emulator,然后在上面安装应用程序 那么如何设置应用程序路径呢?在Mac上下载应用程序,并在Capabilities下添加应用程序路径 例如在Ruby中 [caps] appium-version = "1.1.0" platformName = "Android" p

Rspec 在apache_包装器Cookbook中运行chefspec时“找不到Cookbook apache_包装器”

我是厨师规范的新手,尝试在我的食谱中找出如何使用单元测试。 我已经在不同的ubuntu实例和刀子规范插件上安装了chefdkv2和v3。 创建apache_包装烹饪书后,我更改了下一个文件: spec/spec_helper.rb require 'chefspec' require 'chefspec/berkshelf' RSpec.configure do |config| config.log_level = :debug config.platform = 'ubuntu'

在RSpec中,文件路径后方括号中的信息意味着什么?

RSpec的文档提到了,它在运行时提供了最小的复制,例如 rspec ./spec/calculator_10_spec.rb[1:1] ./spec/calculator_1_spec.rb[1:1] --seed 1234 [1:1]位是什么意思?来自rspec--help: ****筛选/标记**** 除了以下用于选择特定文件、组或组的选项之外 例如,您可以通过将行号附加到 文件名: rspec path/to/a_spec.rb:37:87 您还可以传递方括号内的示例ID: rspe

rake任务rspec测试未响应:have_received method

我有一个非常简单的rake任务: namespace :subscriptions do desc 'Send expired subscription notifications' task notify_trial_expired: :environment do Subscription.where(expires_at: Date.today.all_day).each { |s| s.user.notify_trial_expired } end end 其中,n

RSpec测试类在没有实际文件的模块内

我有一个用于在我的商店中创建零件产品的模块,名为ErpPartsService::Builder,通过该模块,我构建了一个助手类CategoryByaluberIDFetcher,我只在模块内部使用,而不是在其他任何地方使用。我把它放在app/services/erp\u parts\u service/builder.rb文件中 这是我的密码: module ErpPartsService class CategoryByLauberIdFetcher < Service # Thi

如何为link_to helper方法编写RSpec测试?

我对嵌套表单做了一个功能,当我点击链接时,它会从一个部分调用一个表单 例如: 在new.html.erb(TaskList)中,当我创建一个新的任务列表时,我可以填写任务列表的名称,如果我愿意,我可以单击一个链接(addtask)来打开任务表单。因此,我可以填写任务列表名称并插入任意数量的任务 我将在下面显示与之相关的代码: new.html.erb(任务列表): _task_fields.html.erb: <%= f.label :description, 'Tarefa:', cla

rspec:';在示例组上不可用(例如“descripe”或“context”块)

下面提到的代码成功地为1个用户工作,我想为许多用户实现下面的工作代码,所以我尝试使用迭代 ##### Below is the working code for 1 user ####### # user let!(:pi_user) { FactoryBot.create(:read_only) } # PI oauth let!(:oauth_app_02) { FactoryBot.create(:oauth_application, owner: pi_user)

使用Ruby 1.9.2和Rspec 2.5的慢速测试套件

我已经使用Ruby1.9.2和RSpec2以及我的 测试套件现在正在增长,我不满意它的时间长度 他跑不动了。我用Ruby Enterprise做了一个基准测试 版本1.8.7 2011.03,运行速度比Ruby 1.9.2快得多(5倍) 这是意料之中的事还是我遗漏了什么?为了看到结果, Gemfile和spec_helper.rb请检查要点 非常感谢您提供的任何帮助或提示。您可能希望尝试类似Spork的方法,以避免每次需要运行测试时都必须加载应用程序。我发现使用它可以节省很多时间 以下链接是一

Rspec 使用帮助器方法之前挂钩的范围问题?

我相信我在范围界定方面有一些问题 我有一个测试品牌资源的控制器规范文件。 在文件的开头,我测试了不同资源的访问权限 上下文块中的用户 a) 未登录 b) 非管理员用户登录-我调用自己的助手方法login\u user c) 管理员用户登录-我调用自己的助手方法, 登录\管理\用户 那里的规格确实通过了 然后我创建另一个上下文块来测试资源的 已登录的管理员用户。 我尝试在一个before钩子中调用login\u admin\u user,正如前面的 规格 它失败了,我怀疑当前范围在before钩子

Rspec 使用mongoid制作-参数数量错误

我用的是Mongoid。我有一个目标: class Employee include Mongoid::Document field :name_first, type: String field :name_last, type: String field :name_other, type: Array, default: [] field :title, type: St

Rspec:仅启动Firefox窗口。它没有加载URL

请帮助我了解为什么这只是启动浏览器,而不是加载 环境: 视窗7 32位 Firefox 20[也在8.0中试用] 已安装-Watir、Watir Webdriver、Selenium Webdriver、rspec。运行代码时,出现以下异常: Failures: 1) outbid login should succesfully login you in the outbid.com Failure/Error: Unable to find matching line fro

rspec控制器测试实例变量调用方法

我正在尝试为继承的ActiveAdmin控制器编写测试,但在检查实例变量是否正在调用方法时遇到问题。我想要的行为是调用该方法的副作用,因此我希望确保调用该方法 这是控制器: ActiveAdmin.register User do controller do before_filter :get_user def get_user @user = User.find_by_login(params[:id]) if !@user fl

Rspec 使用Bunny Gem和RabbitMQ进行集成测试

我在一个项目上使用兔子宝石和RabbitMQ,以便多个应用程序可以执行RPC调用。我正在努力找到一种方法来使用这些调用进行集成测试。当然,我可以模拟、对象和存根一个方法来返回一些假数据,但是如果有类似于带有RabbitMQ的VCR gem的东西,那就太好了。有关于如何最好地测试bunny的指导吗?我实际上使用rspec编写了一个测试夹具,但它有点不稳定,不令人满意。为什么要费心在这样的过程中进行集成测试呢?要么你相信Bunny和RabbitMQ一起工作,要么你不相信。如果你相信它,就不要测试它。

我怎样才能消除警告;删除`初始化';可能会导致严重问题”;在rspec?

我有一个测试: 允许(GoogleMapsService::Client.)的任何实例接收(:初始化) 我得到了警告:删除'initialize'可能会导致严重的问题,但我没有找到任何其他方法来解决这个问题 我怎样才能用另一种方式解决它,这样我就不会收到警告,或者怎样才能使警告静音 非常感谢我是说你为什么不这样做呢 allow(GoogleMapsService::Client).to receive(:new) 而不是 allow(GoogleMapsService::Client).to

如何使用rspec在Sinatra应用程序中测试小马电子邮件?

我正在尝试,它说它支持小马,但我不知道如何在sinatra应用程序中测试电子邮件。自述文件中的示例显示了railsActionMailer的用法,而不是Pony 使用email_spec并不重要,因此欢迎使用sinatra中的rspec测试电子邮件的任何其他想法=)我以前没有使用过email_spec,但它看起来很酷 您可以在规范文件中看到我如何测试小马,这可能适用于您的情况: 此外,您还可以通过:test传递消息,它将使用邮件中包含的测试邮件程序: 有关检查测试消息的示例,请参见上的“使用带

Rspec Mongoid==(等于)运算符未按预期工作

有时在测试中,我会比较两个用户对象: transaction.sender.should == user1 Rspec给了我一些输出,显示对象具有相同的id(和其他参数),但具有不同的对象id: Failure/Error: tx.sender.reload.should == @u1.reload expected: #<User _id: 5030afb4f8182bb3a9000005, ...> got: #<User _id: 5030afb

Rspec 带js驱动程序的Capybara未登录

我正在使用以下rspec设置代码: RSpec.configure do |config| config.before(:suite) do DatabaseCleaner.clean_with(:truncation) end config.before(:each) do DatabaseCleaner.strategy = :transaction end config.before(:each, :js => true) do Da

Rspec加载routes.rb两次

我有一个问题,Rspec加载路由两次,并因此抛出一个错误。 这几天我一直在想办法,但运气不好。搜索互联网不会带来太多的好处。当我运行rspec时,它会给出以下错误: /home/user/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.1/lib/action_dispatch/routing/route_set.rb:434:in `add_route': Invalid route name, already in use: 'root' (Ar

Rspec 如何在Sinatra应用程序使用Guard重新加载后运行规范?

使用guard rack重新加载应用程序。它可以正确地重新加载应用程序,但是在重新加载后如何运行规范 guard :rack do watch('Gemfile.lock') watch(%r{^app/(.+)\.rb$}) callback(:reload) { `rspec spec` } end 回调应该在应用程序更新后运行规范,但似乎什么也没发生 配置: Capybara.configure do |config| config.run_server = false

Rspec 水豚';填写';有当前日期的日历?

使用水豚/Rspec是否可以实现这一点 现在,在我的测试中,我特别为日历选择器字段设置了一个日期,例如“2016-11-30”,但这并不准确,不断更新“当前年份”或任何内容的测试也没有意义 我现在能用点时间吗 比如说 page.fill_in'Date\u Chooser':with=>Time.now.strftime(“%y-%m-%d”)我想出来了,结果是Date.today.strftime(“%y-%m-%d”)

获得;ruby-2.4.2/lib/ruby/2.4.0/forwardable.rb:157转发到私有方法;在运行rspec时

我已经将我的应用程序从Ruby 2.2.3升级到Ruby 2.4.2,Rails版本是5.1.4。我可以升级应用程序,但当我运行“bundle exec rspec”时,会出现太多类似的行 ..... "ruby-2.4.2/lib/ruby/2.4.0/forwardable.rb:157 forwarding to private method" ... 我遇到了一个链接,它解释了产生这些行的原因: 但我没有找到任何办法来移除它们 有人能告诉我怎么才能去掉这些线吗

是什么让Rspec占用4gb内存来运行500个规格?

我正在一个应用程序上工作,当我在本地机器上运行这些规格时,它成功通过了500多个规格。但是,当这些规范在CircleCI上运行时,进程将被终止。 我试图通过跟踪本地机器上的内存来调查这个问题。当我看到ruby进程占用4gb的内存时,我很惊讶,这就是触发CircleCI终止进程的原因 我不确定我的规格占用所有这些内存的原因 我已经搜索了一个配置,在每个规范之后清理内存,但没有结果 这是我的rails\u helper.rb require "mongoid-rspec" require "spe

Rspec 规格有时通过,有时不通过';T

我有要求规格: describe "Matches" do describe "GET /matches" do it "works! (now write some real specs)" do # Run the generator again with the --webrat flag if you want to use webrat methods/matchers get matches_path response.status.s

rspec和水豚;应该找到;速记

有没有类似于have_selector的find的缩写 例如,我可以写: it { should have_selector('h1', text: 'Welcome') } 下面有类似的速记吗 it "should have blank customer input" do find_field('CustomerName').value.should be_blank end 我认为没有速记,因为速记员是RSpec匹配者 您不能使用have_field执行此操作,因为它不支持属性

Rspec测试与expect change语法的关联

我正在尝试测试与rspec的一些关联。 这是我的测试: (一) (二) 这是apply\u startup方法的定义: def apply_startup startup = Startup.find_by_id params[:startup][:id] @incubator.pending_startups << startup if startup redirect_to incubator_path(@incubator) end def应用_启动 startu

如何为请求规范配置不同的Rspec?

我有一个Rspec配置,我只想应用于请求规范。到目前为止,我拥有的最佳解决方案是使用标签: # in spec_helper.rb config.before(:each, request: true) do # special settings end 及 这取决于我记得总是用request:true标记这些规格是否有方法根据测试所在的文件夹配置测试? (我使用的是Rspec 2.14)Rspec rails根据其位置设置每个规范的:类型(必须是已知类型之一-您不能只是虚构。列表为) R

如果没有断言,是否有办法使RSpec失败?

Minitest已验证 RSpec是否有类似的方式要求断言?您可以为此配置RSpec,请查看以下内容: 及 基本上,您需要在hook之后设置,并检查元数据是否存在预期运行: (url下降时代码的副本) 这是我的看法: RSpec.configure do|config| config.include(Module.new do 属性写入器:期望集计数 def期望值设置计数 @期望值集计数=0 终止 def expect(*) 自我期望集计数+=1 超级的 终止 (完) config.after

RSpec-如何在所有请求测试上全局设置https协议

Rspec版本-3.8 测试类型-请求规范 如何在所有请求规范上全局设置https协议?看起来您可能正在使用Rails,在这种情况下,您可以执行以下操作之一: 要为所有Rspec示例设置“https”,请创建一个文件,如spec/support/url_options.rb,其中包含以下内容: 要仅针对请求规范,可以使用钩子,例如: 对于站点范围的配置,您可以将以下内容添加到config/environments/test.rb中: 这对于请求规范应该可以很好地工作,但是特性规范可能会有额外的复

“需要多少时间?”;让我们;在RSpec测试中真的节省了吗?

我发现在代码中设置变量比使用let容易得多let很挑剔,总是告诉我错误使用它的方式 当我在我的规范中使用一个简单的变量声明时,比如 tx\u good=makeTransaction1(),一切正常 但是当我使用时,就让像这样 让(:tx_good){makeTransaction1()}我总是会遇到这样的错误,告诉我它不能在这里或那里运行 `let` and `subject` declarations are not intended to be called in a `befo

Rspec哈希匹配器,不考虑密钥顺序 我已经用这种方法编写了哈希匹配示例

输出 - { "name" => "pratam", "wisher" => "max mc" } + { "wisher" => "max mc", "name" => "pratam" } 但是上面的代码似乎不起作用。在散列中,与键顺序无关的匹配方法是什么?匹配器应该与键顺序无关: 在你的(干净的)irb里试试这个 哈希没有“专用”匹配器,因为这就是eq的工作原理 也许你有一些“奇怪”的宝石,可以做出

Rspec 黄瓜+;webrat:检查两次出现的文本

我正在开发一个rails应用程序来自学BDD和测试。使用cucumber+webrat+rspec,在Railcast视频tuts之后。 在这个应用程序中,测验有很多问题。我正在测试的视图应该两次不连续地呈现问题。(此处不测试连续性) 我有一个黄瓜场景,旨在检查这一点 Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident" When I go to the experiment page for quiz t

Rspec 在调用_过滤器之前进行测试

如何测试当访问控制器中的某个操作时,该控制器的before_过滤器将被执行 before_筛选器在单独的示例组中进行测试,因此无需对依赖before_筛选器的所有操作重复测试 如果我有 controller.should_receive(:my_before_filter) 在我的例子中,它工作得很好。但是,具有上述期望似乎会导致未执行my_before_filter中的逻辑(它应该分配一个实例变量) 如何克服此限制或在过滤器之前模拟my_的行为(它在控制器上设置实例变量)?还是有更好的方法

rspec模型试验

我有一段代码要测试: class User < ActiveRecord::Base has_many :servers, :dependent=> :destroy end class用户:销毁 结束 请给出测试关联代码的RSpec代码示例。在RSpec中测试关联的一种方法是使用。Shoulda是一个助手的集合,可以让常见的重复测试快速编写,同时又易于理解。要测试您的模型,请确保已安装并需要shoulda gem。然后,您可以测试与以下内容的关联: describe Us

rspec carrierwave应具有_维度始终失败:未调整thumb的大小

我已经设置了carrierwave,它可以很好地处理我的图像。我在一个子文件夹中很好地调整了thumb版本的大小。从我的前端(HTML)和我的rails控制台。我使用MiniMagic 但在我的rspec中,拇指测试总是失败 describe 'processed images' do before(:each) do AttachmentUploader.enable_processing = true AttachmentUploader.enable_processin

rspec为会话分配失败

我的测试失败了,测试报告上写着 失败/错误:分配(:项)。应为eq(项):[#项id: 756,产品名称:“第1项”,产品价格:310.25,产品余额: 3,活动:1,创建于:“2012-10-11 20:10:23”,更新于: "2012-10-11 20:10:23"] 得到:[] 你能告诉我为什么考试不及格吗 cart_controller.rb文件 class CartController < ApplicationController def index @cart

使用RSpec请求规范和Capybara设计不在测试环境中工作的身份验证

我一直在努力让我的要求生效。我已经尝试了许多不同的方法,我通过谷歌找到了这些方法。以下是我在请求规范中分别尝试的以下帮助程序: #spec/support/devise_request_spec_support.rb module DeviseRequestSpecSupport def login(user) post user_session_path, login: user.email, password: 'foobar' end end #spec/support

Rspec 如何找到水豚的第一个空域?

我想找到表单中的第一个空字段 find(“输入[name='somename']”,文本:“”)。首先 出错 Capybara::模棱两可: 不明确匹配,找到5个元素与css“input[name='somename']”和文本匹配 从Capybara 2.0开始,find要求只有一个元素与规范匹配。根据,您可以首先使用具有相同规格的,如中所示: first("input[name='somename']", text: '') 虽然这显然效率较低,但您也可以使用: all("input[na

Rspec 有没有一种方法可以跟踪电子邮件中基于文本的链接?

在RSpec中,我可以使用 click_link "change your password" RSpec随后将找到相应的链接并遵循相关的HREF 你如何在电子邮件中做到这一点? 我试图在电子邮件中使用email\u spec执行相同的行为。但是,我似乎找不到一个等价的助手,它可以单击与中特定链接文本对应的链接 这似乎是一个非常明显的用例,所以在我写一些东西来为我做之前,我想检查一个是否已经存在 这种情况下,我想查看电子邮件中与“更改我的密码”相对应的任何链接。我希望您已正

Rspec 无法运行具有数据包的chefspec测试

我正在尝试使用chefspec运行单元测试。我在食谱中添加了数据包。没有数据包,chefspec测试运行良好。添加数据包后,chefspec显示以下错误: 1) database::prerequisites installs a package Failure/Error: let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'oracle', version: '7.2').converge(described_recipe

上一页 1 2 ...  5   6   7   8    9   10   11  ... 下一页 最后一页 共 27 页