cashout.rb

class Cashout < ActiveRecord::Base
  belongs_to :partner
private
  def partner_exist?
    if self.partner.nil?
      errors.add(:base, "There is no partner! ")
      return false;
    end
    return true
  end
end

cashout_spec.rb

context 'should check partner existence' do 
    it 'if partner is not nil' do 
      @company = Factory(:company) 
      @partner = Factory(:partner, :company => @company)
      @cashout = Factory.build(:cashout, :partner => @partner)
      @cashout.save
      @cashout.partner_exist?.should eql(true)
    end
end

这些是我的模型文件和测试文件。测试结果是

1) Cashout should check partner existence if partner is nil
     Failure/Error: @cashout3.partner_exist?.should eql(false)
     NoMethodError:
       private method `partner_exist?' called for #<Cashout:0x007f822189dfa0>
     # ./spec/models/cashout_spec.rb:47:in `block (3 levels) in <top (required)>'

您知道如何测试私有方法吗?

===============>>#1 票数:4 已采纳

您可以通过send调用私有方法:

@cashout3.send(:partner_exist?).should eql(false)

  ask by Johnny Cash translate from so

未解决问题?本站智能推荐:

1回复

使用Factory_girl和will_paginate对关联对象进行RSpec测试

我在用rspec为will_paginate编写测试时遇到问题。 问题是我有一个拥有很多宠物的主人的模型。 这将导致一个如下所示的factory.rb文件: 在我的测试中 describe "Get show" do before(:each) do @owner = F
1回复

突变字符串以使用rspec和factory_girl进行测试

我想使用rspec和factory_girl测试模型属性的验证。 “特殊”的事情是,一个属性(名称)不允许以数字或特殊符号(例如%,&,$,...)开头。 为了测试这一点,最好只写一个例子 it "is invalid with name starting by special cha
2回复

使用rspec和factory_girl测试查询:是否有更好的方法?

我有以下课程和关系 我想测试查询 目前,我的工作方式如下:使用Factory Girl,并将一堆模型链接在一起以进行数据检查, 并重复3-4生成足以查询的数据,但似乎很笨拙。 有没有更好的办法 ?
2回复

在RSpec中使用factory_bot(以前为factory_girl)在Rails中进行测试时,未定义的方法“ first”

我有一个Rspec测试,它使用factory_bot创建实例。 除在视图中使用第一种方法外,测试均通过。 这是正在测试的代码: 这是测试: 到现在为止还挺好。 但是,当其中一个视图尝试访问第一个实例时,如下所示: 然后,我收到以下错误: 根据我的理解,由
1回复

存根factory_girl + rspec方法和属性

我在Rails 2-3-stable上使用factory_girl + rspec: 测试: 码: 这个简单的测试失败,加上真正的lastfm_enabled? 方法被称为真正的。 @profile不是模拟,它是使用factory_girl创建的。 最初,我还
2回复

Rspec,factory_girl - 使用has_many模型测试创建动作

我正在尝试为动作创建一个rspec测试。 控制器是OrderController。 订单模型包含许多订单项。 我不知道怎么做这个电话: post:create,order:FactoryGirl.build(:order).attributes 但这失败了,因为我的验证说:订单
1回复

设置对象以使用factory_girl进行模型测试

我想测试以下范围,但不知道如何正确设置测试对象。 我什至不知道我是否应该在工厂中通过一些关联或使用let / local vars创建它们。 task.rb 工厂 task_spec.rb
1回复

Factory_girl和RSpec:Test:Module的未定义方法“ new”

我生成了以下脚手架(使用Ruby 2.2.0,rails 4.1.8,postgres): 在我的test_spec.rb中: 当我运行rspec时,测试失败并显示以下消息: 当我测试其他模型(用户,文本)时,一切正常,只有测试模型失败。 在rspec文件中调用Test
1回复

RSpec使用Factory Girl创建映像进行测试

在Rails 4.2.0应用程序中,我使用RSpec和Factory Girl进行测试。 在应用程序中,我使用回形针进行图像上传。 当我使用空白图像运行测试时,该图像将放置在公用文件夹中。 有什么办法可以使用database_cleaner gem修复此问题? 到目前为止,我有这
1回复

通过rspec factory_girl控制器测试上的自定义属性

我正在尝试测试以下创建方法: 我的问题是我不知道如何在测试中将此数据作为参数添加: 到目前为止,这是我在pointings_controller_spec.rb上拥有的: 但是那些参数似乎没有达到任何方法。 提前感谢