問題タブ [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.

0 投票する
1 に答える
1138 参照

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

誰が何が起こっているのか手がかりを持っていますか?

0 投票する
3 に答える
389 参照

ruby - Mocha: #caller メソッドをスタブできないのはなぜですか?

Mocha単純なコードで使用すると、予期しない方法になりました。何が問題なのか説明していただけますか?

したがって、この単純なクラスを使用して、最新の呼び出し元を取得できます。

しかし、呼び出しをスタブしたい場合caller、問題が発生します。

私の推測では、ソースをチェックすることMochaですが、後で行います ;)


  • ルビー 1.9.3p194
  • テストユニット 2.5.0、2.4.8
  • モカ0.12.6
0 投票する
2 に答える
6944 参照

ruby - Mocha を使用してクラス メソッドをスタブ化する

rspec と Mocha を使用してテストしたいメソッドがあります。Dir.glob私の目的は、1 つのファイルの単純な配列を返すためにスタブアウトすることです。メソッドは次のように定義されます。

そしてテスト:

問題は、メソッドupload_dirがここでテストしたいものではないことです。呼び出しをスタブ化すると、呼び出されることはないと思いましDir.globupload_dirDir.globと callの呼び出しの前にデバッガーを配置するとDir.glob、1 つのゼロ ファイルの配列が表示されるため、スタブは確実に機能します。ただし、テストが実際にメソッドDir.glob("#{upload_dir}/*.pdf")を呼び出すときは、次に を呼び出そうとしていますupload_dir

Ruby 1.9.3、rspec 2.12.0、mocha 0.13.0 を使用しています。

0 投票する
1 に答える
5395 参照

ruby - Rakeでシステムコマンドからstdoutに出力するには?

私は次のものを持っていますRakefile

コマンドを実行すると、コマンドを実行したrake test:apiだけの場合とは異なり、適切なドットの出力が得られませんmocha

rake タスクでコマンドの出力をリアルタイムで印刷するにはどうすればよいですか?

0 投票する
1 に答える
626 参照

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 Useron thatに属しておりAccount、これはすべてのテストで少し多めです。笑


更新 2:

うまくいきました:

accounts、またはのようなフィクスチャにアクセスしますusers

0 投票する
1 に答える
200 参照

ruby - Rails 3 統合テストで mocha がこのメソッドをスタブ化しないのはなぜですか?

私は次のものを持っています:

それでも、 Project.price_all メソッドが実行されているため、テストが失敗しています。

Capybara 2 と最新バージョンの capybara-webkit にアップグレードするまで、これは正常に機能していました。

そのメソッドがまだ実行されているのはなぜですか? どうすれば修正できますか?

0 投票する
2 に答える
8303 参照

rspec - そのようなファイルを読み込めません -- mocha/object (LoadError)

rspec を実行してテストすると、次のエラーが発生しました。

そのようなファイルを読み込めません -- mocha/object (LoadError) 問題はconfig.mock_with :mocha以下の行にあります:

ここに私のspec_helper.rbがあります:

それで、私はここで何が欠けていますか?

編集

完全なエラーは次のとおりです。

編集2

ここに私のGemfileがあります

そして、ここに私のGemfile.lockがあります

0 投票する
2 に答える
1201 参照

ruby-on-rails - Railsサーバーを立ち上げようとしたときのモカ期待エラー

Rails プロジェクトは完全に実行されていましたが、途中でいくつかの gem を再インストールし、rbenv と rvm を切り替える必要がありました。以前は rvm を実行していましたが、rbenv に切り替えたところ、大量の例外が発生し始め、rvm に戻そうとしましたが、それでも同じエラーが発生しました。

これは rvm/rbenv の問題ではなく、gem のインストール方法の変更であると考えています。

完全なスタック トレースは次のとおりです。

私の宝石のバージョン:

このことは過去 3 日間私を悩ませてきました。助けていただければ幸いです...

0 投票する
1 に答える
53 参照

ruby - テストでスーパーメソッドの呼び出しをバイパスするにはどうすればよいですか

私はこのような基本的な構造を持っています

からコードを実行せずCompactCarにテストするための推奨される方法は何ですか? 子クラスに必要な構造を提供するので、常にそれをテストしたいのですが、機能は他の場所でテストされており、努力を繰り返したくありません。AutomobileCarAutomobile#some_methodCar's

class_eval1 つの解決策はoverwriteを使用することCar#some_methodですが、これは理想的ではありません。これは、上書きされたメソッドがテスト中にそのまま残るためです (元のライブラリ ファイルを setup/teardown メソッドで再ロードしない限り...一種の醜い解決策です) )。また、単に への呼び出しをスタブ化してCar#some_methodも機能しないようです。

これを行うためのよりクリーンな/より一般的に受け入れられている方法はありますか?

0 投票する
1 に答える
488 参照

ruby - 同じメソッドの Mocha は 2 つの異なる値を返す必要があります

Mocha を使用して、2 つの個別の値を返す必要がある同じメソッドをスタブ化しています。私が何をしても、2 つの値のうち 1 つしか返されないため、rspec テストの 1 つが常に失敗します。スタブが適切なタイミングで正しい値を返すようにするにはどうすればよいですか?

コード:

私もbeforeブロックでこの方法を試しました。まだ運がありません。