如何以最小的DB开销测试rails中的关联扩展逻辑

时间:2009-08-16 16:57:48

标签: ruby-on-rails testing rspec associations

我喜欢在任何地方使用模拟和存根来保持我的规格快速运行。 关于如何在下面测试find_special方法,我有点难过:

  has_many :foos do 
    def find_special
      if proxy_owner.baz
        ... find stuff
      else
        ... find other stuff
      end
    end
  end

我不介意使用:extend =>这个模块的语法,但我不认为它有所作为。

1 个答案:

答案 0 :(得分:1)

您是否在询问如何在proxy_owner上存根方法?在这种情况下,它不是你在foos上调用的对象吗?

# in Mocha
item.stubs(:baz).returns(true)
item.foos.find_special # => find stuff
item.stubs(:baz).returns(false)
item.foos.find_special # => find other stuff

这是未经测试的,但也许会让你接近。