Test::UnitとMochaを使用して単体テストを作成しました。テストしているクラスのメソッドをモックするために「expects」を使用しています。特定のパラメーターがオブジェクトに渡されているかどうかを確認したいと思います。
service.expects(:get).once.with(path, has_key('t')).returns([])
私の開発システムでは、これは問題なく動作します。同僚のコンピューターと Travis CI サーバーで、単体テストが次のエラーで失敗します。
NoMethodError: undefined method `has_key' for #<FloxTest:0x000000036d4770>
Mocha が単体テストに追加することになっている他のすべてのメソッド、たとえば「mock()」メソッドでも同じことが起こります。
Mocha が輸入注文にうるさいことは知っています。ただし、「test/unit」の後にインポートしました:
require 'test/unit'
require 'mocha/test_unit'
詳細なコンテキストが必要な場合は、完全なテスト ファイルがここにあります。実際、完全なプロジェクトはオープン ソースであり、かなり小さなプロジェクトです: GitHub ; 完全なエラー ログはTravis CIで確認できます。
何を試すことができるかについて、これ以上のアイデアはありません。同僚が私とまったく同じバージョンの gem を持っていることも確認しました。Rubyのバージョンも同じです。
Ruby Guru からの助けに感謝します。本当に感謝しています!