問題タブ [ruby-mocha]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - NoMethodError: minitest と mocha の未定義のメソッド `mock'
Rails 3 用の gem を開発していますが、テスト スーツを travis-ci.org の Ruby 1.8.7 で実行するとエラーが発生しました。
これは失敗したジョブへのリンクです: https://travis-ci.org/#!/pokonski/public_activity/jobs/2586051
Ruby > 1.8.7 ではすべてが正常に動作します。
.gemspec の関連部分:
および Gemfile:
興味深いことに、ruby-1.8.7-p370 を使用してローカルでテストを実行すると、別のメソッドが見つからないというエラーが発生します。
失敗した行のソース コード: https://github.com/pokonski/public_activity/blob/master/test/test_common.rb#L85
誰が何が起こっているのか手がかりを持っていますか?
ruby - Mocha: #caller メソッドをスタブできないのはなぜですか?
Mocha
単純なコードで使用すると、予期しない方法になりました。何が問題なのか説明していただけますか?
したがって、この単純なクラスを使用して、最新の呼び出し元を取得できます。
しかし、呼び出しをスタブしたい場合caller
、問題が発生します。
私の推測では、ソースをチェックすることMocha
ですが、後で行います ;)
- ルビー 1.9.3p194
- テストユニット 2.5.0、2.4.8
- モカ0.12.6
ruby - Mocha を使用してクラス メソッドをスタブ化する
rspec と Mocha を使用してテストしたいメソッドがあります。Dir.glob
私の目的は、1 つのファイルの単純な配列を返すためにスタブアウトすることです。メソッドは次のように定義されます。
そしてテスト:
問題は、メソッドupload_dir
がここでテストしたいものではないことです。呼び出しをスタブ化すると、呼び出されることはないと思いましDir.glob
たupload_dir
。Dir.glob
と callの呼び出しの前にデバッガーを配置するとDir.glob
、1 つのゼロ ファイルの配列が表示されるため、スタブは確実に機能します。ただし、テストが実際にメソッドDir.glob("#{upload_dir}/*.pdf")
を呼び出すときは、次に を呼び出そうとしていますupload_dir
。
Ruby 1.9.3、rspec 2.12.0、mocha 0.13.0 を使用しています。
ruby - Rakeでシステムコマンドからstdoutに出力するには?
私は次のものを持っていますRakefile
コマンドを実行すると、コマンドを実行したrake test:api
だけの場合とは異なり、適切なドットの出力が得られませんmocha
。
rake タスクでコマンドの出力をリアルタイムで印刷するにはどうすればよいですか?
ruby-on-rails - Mocha を使用したモッキングにより、関数内のロジックを実際にテストするにはどうすればよいでしょうか?
Factory Girl を使用することは、1000 以上のテストを行うプロジェクトではあまり実用的ではないため、モックの作成方法を学び始めました。特に何らかの自動化された継続的インテグレーションを行いたい場合は、すべてのテストでデータベースにアクセスすることはできません。
私のテスト:
上記のテストの方法:
しかし、これは私がテストを実行すると得られるものです:
public_url
呼び出すべきではありませんstatus()
か?
そうでない場合、私がp.status
自分自身を呼び出す必要がある場合、それp.public_url()
は私が書いたロジックを完全に無視し、私が定義したものに厳密に従っていることを意味しませんexpects
か? それは単体テストにどのように役立ちますか? たぶん私は嘲笑の目的を理解していません。
アップデート:
@Philipの提案に従って、テストをこれに変更し、ActiveRecordのシェナニガンの必要性を取り除きました。
私の質問は、フィクスチャ (私が名前を付けたもの) を使用してアカウントをスタブ化するにはどうすればよいかということだと思いますlocalhost
。エラーが発生します:undefined method 'full_domain' for Mocha::Expectation:
しかし、フィクスチャは次のように定義されています。
すべてのテストで簡単に使用できるように、よくアクセスされるモデルの非常に基本的なものを使用できるように、フィクスチャをセットアップしました。すべてのテストの標準モデル/関係 (私が手作業で/工場の女の子でモックなしでテストを行う場合、これが必要になります:
Account
, Subscription
(has Account
, SubscriptionPlan
), SubscriptionPlan
, User
(belongs to Account
), AccountProperties
(has Account
), そして実際のオブジェクト私がテストしているのは、 anAccount
と a User
on thatに属しておりAccount
、これはすべてのテストで少し多めです。笑
更新 2:
うまくいきました:
accounts
、またはのようなフィクスチャにアクセスしますusers
。
ruby - Rails 3 統合テストで mocha がこのメソッドをスタブ化しないのはなぜですか?
私は次のものを持っています:
それでも、 Project.price_all メソッドが実行されているため、テストが失敗しています。
Capybara 2 と最新バージョンの capybara-webkit にアップグレードするまで、これは正常に機能していました。
そのメソッドがまだ実行されているのはなぜですか? どうすれば修正できますか?
rspec - そのようなファイルを読み込めません -- mocha/object (LoadError)
rspec を実行してテストすると、次のエラーが発生しました。
そのようなファイルを読み込めません -- mocha/object (LoadError) 問題はconfig.mock_with :mocha
以下の行にあります:
ここに私のspec_helper.rbがあります:
それで、私はここで何が欠けていますか?
編集
完全なエラーは次のとおりです。
編集2
ここに私のGemfileがあります
そして、ここに私のGemfile.lockがあります
ruby-on-rails - Railsサーバーを立ち上げようとしたときのモカ期待エラー
Rails プロジェクトは完全に実行されていましたが、途中でいくつかの gem を再インストールし、rbenv と rvm を切り替える必要がありました。以前は rvm を実行していましたが、rbenv に切り替えたところ、大量の例外が発生し始め、rvm に戻そうとしましたが、それでも同じエラーが発生しました。
これは rvm/rbenv の問題ではなく、gem のインストール方法の変更であると考えています。
完全なスタック トレースは次のとおりです。
私の宝石のバージョン:
このことは過去 3 日間私を悩ませてきました。助けていただければ幸いです...
ruby - テストでスーパーメソッドの呼び出しをバイパスするにはどうすればよいですか
私はこのような基本的な構造を持っています
からコードを実行せずCompactCar
にテストするための推奨される方法は何ですか? 子クラスに必要な構造を提供するので、常にそれをテストしたいのですが、機能は他の場所でテストされており、努力を繰り返したくありません。Automobile
Car
Automobile#some_method
Car's
class_eval
1 つの解決策はoverwriteを使用することCar#some_method
ですが、これは理想的ではありません。これは、上書きされたメソッドがテスト中にそのまま残るためです (元のライブラリ ファイルを setup/teardown メソッドで再ロードしない限り...一種の醜い解決策です) )。また、単に への呼び出しをスタブ化してCar#some_method
も機能しないようです。
これを行うためのよりクリーンな/より一般的に受け入れられている方法はありますか?
ruby - 同じメソッドの Mocha は 2 つの異なる値を返す必要があります
Mocha を使用して、2 つの個別の値を返す必要がある同じメソッドをスタブ化しています。私が何をしても、2 つの値のうち 1 つしか返されないため、rspec テストの 1 つが常に失敗します。スタブが適切なタイミングで正しい値を返すようにするにはどうすればよいですか?
コード:
私もbefore
ブロックでこの方法を試しました。まだ運がありません。