Ruby: Mocking a class method with MiniTest?

minitest, mocking, ruby

Solution

This might not be helpful to you if you're stuck using 2.12.1, but looks like they added method stubbing to minitest/mock in HEAD here.

So, were you to update to minitest HEAD, I think you could do this:

product = Product.new
Product.stub(:find, product) do
  assert_equal product, Product.find(1)
end

Problem

I'm using MiniTest 2.12.1 (the latest version of the stock testing framework shipped with Ruby >= 1.9) and I can't figure out how to mock a class method with it, the same way it's possible with the likes of Mocha, for example: ``` product = Product.new Product.expects(:find).with(1).returns(product) assert_equal product, Product.find(1) ``` I've been dabbling the Internet for days and I'm still to find a reasonable answer to this. Please help?

Original source

Related problems