私は何日もモカをいじっていますが、正しく動作していないようです。
Rails 3.1.0.rc4 と Mocha 0.9.12 を使用し、Ruby 1.9.2-p180 で実行しています。私のGemfileには
gem 'mocha', :require => false
そして、test_helper.rbの最後の行にMochaが必要です
require 'mocha'
さまざまな質問やブログ投稿で示唆されているように。
ただし、新しい Rails プロジェクトを作成し、次のような簡単なテストを作成する場合:
test "test 1" do
User.any_instance.expects(:something).returns(true)
u = User.new
assert u.something
end
test "test 2" do
User.any_instance.expects(:something).returns(true)
u = User.new
end
test "test 3" do
u = mock()
u.expects(:something).at_least_once
end
エラーなしですべてのテストに合格しました。したがって、モックは機能しますが (:something は実際の関数ではないため)、2 番目と 3 番目のテストでは、Mocha が :something が呼び出されていないことについて不平を言うと予想されます。
「MOCHA_OPTIONS=debug」でテストを実行すると、
Detected MiniTest version: 1.6.0
Monkey patching MiniTest >= v1.4.2 and <= v1.7.2
ここで何が欠けているのか誰か教えてもらえますか?