Tag: rspec

预计真的回应真实?

我升级了我的rspec-rails到3.0.1,现在我在所有的testing中都看到这个错误 Failure/Error: Sidekiq::Status::complete?(json.jid).should be_true expected true to respond to `true?` 我找不到解决scheme,也找不到我想要的东西。

Rails.cache是​​否在testing之间被清除?

我们在Rails 3.2应用程序中使用Rails.cache来cachingid /path映射。 在一些机器上,它工作正常,但其他值是错误的。 原因很难跟踪,所以我有一些关于Rails.cache本身的问题。 它在testing之间被清除了吗? 在testing模式下是否有可能使用开发模式caching的值? 如果没有清除,我怎么能在运行规格之前呢? 我的caching存储configuration是: #in: config/environments/development.rb config.cache_store = :memory_store, {:size => 64.megabytes} #in: config/environments/production.rb # config.cache_store = :mem_cache_store

如何设置MiniTest?

我是一个相当新手的testing人员,但一直试图在Rails中改进TDD。 RSpec很好,但我的testing很慢。 我听说MiniTest的速度要快很多,MiniTest / Spec DSL看起来和我以前使用RSpec的方式非常相似,所以我想我会试试看。 但是,我一直无法在网上find任何提供如何设置和运行Minitest的演练。 我学会了如何从RSpec书中进行testing,我不知道Test :: Unit或者MiniTest应该如何工作。 我在gemfile中有gem,我已经写了一些简单的testing,但是我不知道把它们放在哪里以及如何运行它们。 我认为这是那些显而易见的事情之一,没人打扰写下来。 任何人都可以向我解释如何设置一些Minitest / spec文件,并让他们运行,所以我可以比较性能与Rspec? 编辑 具体来说,这些是我最需要知道的基础知识: 你需要一个test_helper文件(如spec_helper),如果是的话,你如何创build它? 你如何运行微型? 似乎没有等同于rspec spec或rspec path/to/file_spec.rb ,我错过了什么? 谢谢!

在Rspectesting中运行Rake任务

我正在构build一个集成testing套件,并且有一点逻辑,我需要一个干净的数据库。 我如何在我的一个db:test:purge运行db:test:purge任务? 我正在使用:ruby 1.9.2,rails 3.0.9,rspec 2.6

如何用RSpec / RoRtestingAJAX请求?

我对RoR相当陌生,最近开始学习BDD / Rspec来testing我的应用程序。 我一直在寻找一种方法来规范一个AJAX请求,但到目前为止我还没有find很多关于这方面的文档。 有人知道怎么做吗? 我使用rails 2.3.8,rspec 1.3.0和mocha 0.9.8作为我的存根(我也正在学习…)

RSpec存根方法可以按顺序返回不同的值吗?

我有一个模型家庭与方法location合并其他对象,成员的location输出。 (会员与家庭有关,但在这里并不重要。) 例如,给出 member_1的location =='圣地亚哥(旅行,返回5月15日)' member_2有location =='圣地亚哥' Family.location可能会返回'圣地亚哥(member_1旅行,返回5月15日)'具体是不重要的。 为了简化Family.location的testing,我想存根Member.location。 但是,我需要它返回两个不同的(指定)值,如上例中。 理想情况下,这些将基于member的属性,但只是按顺序返回不同的值是可以的。 有没有办法在RSpec中做到这一点? 可以在每个testing示例中重写Member.location方法,例如 it "when residence is the same" do class Member def location return {:residence=>'Home', :work=>'his_work'} if self.male? return {:residence=>'Home', :work=>'her_work'} end end @family.location[:residence].should == 'Home' end 但我怀疑这是好的做法。 无论如何,当RSpec运行一系列的例子时,它不会恢复原来的类,所以这种覆盖“毒化”后续的例子。 那么,是否有一种方法来让每个调用中的stubbed方法返回不同的指定值?

如何在RSpec 2中自动加载spec_helper.rb

在Ruby中开发gem的时候,我几乎总是需要一个可以configurationRSpec的文件来满足我的需要,也许在这之前,需要一些辅助模块,这些模块应该在我所有的示例中都可用。 在Rails应用程序中,使用了一个名为spec/spec_helper.rb的文件。 有一件令我恼火的事情是在典型的Rails环境中,你必须在每个包含它的例子的文件中都要求这个spec_helper.rb文件被加载。 在过去,我遇到了很多与更改示例文件中的加载path和相对需求path有关的问题。 现在对于我的gem,我希望有一种方法来说只要说RSpec在加载任何示例文件之前需要spec_helper.rb文件。 独立于事实,如果我打电话rspec可执行文件,或我可以定义在我的Rakefile rake spec任务。 我知道我可以告诉RSpec只有我的spec_helper.rb的位置是这个spec_helper.rb需要手动的所有示例文件,但我也想避免额外的维护方法。 有没有更好的方法来完成这个?

Minitest和Rspec

我刚刚观看了Minitest的Railscast 。 使用RSpec vs Minitesttestingrails应用程序有什么优缺点? 我将失去从RSpec转换到Minitest的哪些function?

Rspec 3如何testingFlash消息

我想用rspec来testing控制器的动作和flash消息的存在。 行动 : def create user = Users::User.find_by_email(params[:email]) if user user.send_reset_password_instructions flash[:success] = "Reset password instructions have been sent to #{user.email}." else flash[:alert] = "Can't find user with this email: #{params[:email]}" end redirect_to root_path end 规格 : describe "#create" do it "sends reset password instructions if user exists" do post :create, email: "email@example.com" expect(response).to redirect_to(root_path) […]

工厂女孩创build绕过我的模型validation

我正在使用Factory Girl在我的模型/unit testing中为一个组创build两个实例。 我正在testing模型来检查.current调用根据下面的expiry属性只返回“当前”组… describe ".current" do let!(:current_group) { FactoryGirl.create(:group, :expiry => Time.now + 1.week) } let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now – 3.days) } specify { Group.current.should == [current_group] } end 我的问题是我已经在模型中validation了新组的到期date是在今天的date之后。 这提高了下面的validation失败。 1) Group.current Failure/Error: let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now – 3.days) } ActiveRecord::RecordInvalid: Validation failed: Expiry is before todays date 有没有办法强制创build团队,或者在创buildFactory […]