草庐IT

rspec-mocks

全部标签

ruby-on-rails - Rspec Controller 测试没有命中我的 Controller 操作

我向Controller添加了一个import方法,当我从我的网站手动测试它时它工作正常,但它在rspec中失败了。这是我的测试结果:require'spec_helper'describePropertiesControllerdolet!(:user){FactoryGirl.create(:user)}before:eachdosign_inuserenddescribe"shoulduploaduserproperties"dobeforedopost:import,spreadsheet:fixture_file_upload("/files/property_upload_

ruby-on-rails - Rspec测试加载错误: cannot load such file -- spec_helper (LoadError)

我正在阅读有关RSpec测试的章节,但我一直收到加载错误。它告诉我首先创建一个新分支,然后创建两个新目录:Models和Spec。在这些目录中,我应该制作两个文件;models/entry.rb和spec/entry_spec.rb。在spec/entry_spec.rb中,我应该输入以下代码:require_relative'../models/entry'RSpec.describeEntrydoend然后在我的models/entry.rb中,我应该放这段代码:classEntryend然后我应该运行这个终端命令:$rspecspec/entry_spec.rb得到这个结果:No

ruby - 如何对使用 RSpec 的 REST API 的方法进行单元测试?

我正在从事一个从外部RESTAPI(来自Facebook、Twitter或Instagram等社交网络)获取数据的项目。我不确定我所做的是对还是错,所以我需要一些指导。我不知道,当人们创建依赖于外部数据(RESTAPI或爬行数据)的应用程序时,他们如何使用它进行TDD。我的问题是:我正在尝试对调用外部RESTAPI的方法进行TDD测试。这是对还是错?如果正确,我如何使用RSpec对其进行测试?有没有我可以阅读的指南或资源?如果错了,我该如何检查呢?如果我将API_VERSION更改为更高版本,我怎么知道逻辑是否仍然运行良好,并且所有必填字段仍然存在?例如:我有这样的代码:API_VER

ruby - 使用 Raise 尝试在 Ruby 中回答 Rspec 到 raise_error 时不断出现错误?

基本上,我正在尝试回答一系列Rspec指令。其中一条说明是这样的:it"failsinformativelywhenthere'snotenoughvaluesstackedaway"doexpect{calculator.plus}.toraise_error("calculatorisempty")end所以我了解了raise_error以及如何回答它,是我创建了某种错误/异常。defplus@array_nums.length>=2?@array_nums要清楚底部有一个结束,但文本编辑器没有处理它。所以我提出了错误,我试图提出ArgumentError等等,但我一直从rspec

ruby - ruby 如何知道在 require "rspec"中找到 rspec

在Ruby中,我可以通过require_relative"file.rb"使用相对路径来请求另一个文件但是我怎么能在一个随机的Ruby文件中编写require'rspec'并且让它确切地知道我指的是哪个文件呢?我了解(在阅读this帖子后)在rails中require正在使用$LOAD_PATH来查找文件路径,但我没有看到它在某个任意目录中是如何工作的。 最佳答案 Thispost有详细解释。这是重要的部分:Tohelpyouusethecodeinsideofyourgems,RubyGemsoverridesRuby’srequ

ruby-on-rails - Rspec 阻止方法被调用

我正在测试用于创建新订单的Controller方法(类似电子商务的应用程序)。如果用户存在于系统中,他应该被重定向到new_user_session_path,否则到new_order_path。就这么简单。这是我的orders_controller.rbdefnewif!User.where(phone:params[:phone]).blank?&&!user_signed_in?redirect_tonew_user_session_path()flash[:info]="Alreadypresent"else@order=Order.new@menu=Menu.find(par

ruby-on-rails - Bundler 找不到 rspec 可执行文件

当我尝试在我的Rails5.1应用程序中运行测试时,出现无法找到可执行文件的错误:$bundleexecrspecbundler:failedtoloadcommand:rspec(/Users/joepalmieri/.rbenv/versions/2.3.3/bin/rspec)Gem::Exception:can'tfindexecutablerspec/Users/joepalmieri/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/rubygems_integration.r

ruby - 如何通过 RSpec 模拟使用 sorbet 类型检查?

我有一个具有冰糕类型签名定义的方法。在使用RSpec的测试中尝试模拟此方法时,出现类型不匹配错误。我正在尝试了解如何解决此问题并添加基于RSpec的测试而不影响冰糕类型检查。sig{params(login_context:LoginContext,company_id:String).returns(T::Boolean)}defpopulate_dummy_data(login_context,company_id)测试代码:@login_context=double(LoginContext,:requester=>@requester)#Createsaninstanceoft

ruby-on-rails - validates_inclusion_of、acts_as_tree 和 rspec 的问题

我在让rspec正常运行以测试validates_inclusion_of我的迁移时遇到问题,如下所示:classCreateCategories我的模型是这样的:classCategoryCategory.all.map(&:id),:unless=>Proc.new{|c|c.parent_id.blank?}end我的工厂:Factory.define:categorydo|c|c.name"CategoryOne"endFactory.define:category_2,:class=>Categorydo|c|c.name"CategoryTwo"end我的模型规范如下:re

ruby - 在 rspec 中,为什么我不能在辅助类中使用 be_false 等?

在rspec测试中使用辅助类时,我看不到使用.shouldbe_false习惯用法。在helper.rb文件中定义的函数中没有问题,但是当它在类中时,找不到be_false符号。下面的例子——为什么这不起作用?我如何在助手中使用be_false等?这样的断言似乎只在测试本身中有效,这似乎是有意为之的。我有可能因例如而失败的助手。网络通信问题实际上是真正的测试失败,因为我的助手使用的网络通信是被测系统的一部分。我应该如何让我的测试在辅助类中优雅地失败?结果$spec./test.rbhelper_foo1helper_foo2helper_foo3FunctionFoo1F1)NameE