Ruby:用MiniTest模拟一个类方法?

Cri*_*oyo 17 ruby mocking minitest

我正在使用MiniTest 2.12.1(Ruby附带的最新版本的库存测试框架> = 1.9)我无法弄清楚如何使用它来模拟类方法,就像Mocha之类的方法一样, 例如:

product = Product.new
Product.expects(:find).with(1).returns(product)
assert_equal product, Product.find(1)
Run Code Online (Sandbox Code Playgroud)

我已经在互联网上打了几天,我仍然要找到一个合理的答案.请帮忙?

Ada*_*dam 17

如果您使用2.12.1,这可能对您没有帮助,但看起来他们在此处向HEAD中的minitest/mock添加了方法存根.

那么,你是否要更新到最小的HEAD,我想你可以这样做:

product = Product.new
Product.stub(:find, product) do
  assert_equal product, Product.find(1)
end
Run Code Online (Sandbox Code Playgroud)