問題タブ [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 に答える
718 参照

ruby - Ruby Mocha - 「.with」を複数指定する方法「.times」

.with複数の期待を連鎖させたいと思っています。現在、私はそれらを別々の行に入れています-

あなた.returnsはただできる -

私は理想的にはできることを望みます -

また

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

ruby - mocha to stub メソッドを期待せずに使用する

テストの1つのセットアップで、このようなメソッドをスタブしています

問題は、すべてのテストがメソッドを呼び出してオブジェクトを返すわけではないことです。

メソッドを呼び出さないメソッドでは、次のエラーが発生します。

何度でも許可されますが、まだ呼び出されていません: GoogleIdentity.new()

メソッドが呼び出されていないため、モカが不平を言っているようです。

calle であることを期待しないスタブを指定するにはどうすればよいですか?

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

ruby - Mocha でモックをサブクラス化するにはどうすればよいですか?

クラスにいくつかの定数が定義されていると予想されるオブジェクトをモックする必要があります。

初期化にコストがかかるため、単体テストでクラスのインスタンスを単純に使用したくありません。さらに、シンプルなインターフェイスを備えているため、モックに最適です。単純にサブクラスMocha::Mock化していくつかの定数を追加できれば完璧です。ただし、これらのサブクラスをインスタンス化する方法は見つかりませんでした。初期化引数として「嘲笑」が必要です。私は試した:

これは非常に面白い結果になりました:

予期しない呼び出し: #<Mock:0x35c0690>.instance_method_get(:@mockery)

モカのソースはかなり複雑で絡み合っています。mockMinitest::Testオブジェクトの が作成されるポイントさえ見つかりません。

では、Mocha でモックをサブクラス化するにはどうすればよいでしょうか? まっすぐ進む方法はありますか?


私のバックアップ ソリューションは、モックを使用する代わりに上記の 3 行のクラスを単純に使用することですdriver.stubs(:name)...が、それは問題を解決するには間違った方法のように感じます。

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

ruby - Ruby Mocha: rspec-mocks の #and_call_original に相当するものはありますか?

Rspec-mocks にはexpect(some_object).to receive(:some_method).and_call_original. Mocha でこれを行うことはできますか? some_object.expects(:some_method).......何?

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

ruby - Ruby Mocha Unittest で「has_key」メソッドが見つかりません

Test::UnitMochaを使用して単体テストを作成しました。テストしているクラスのメソッドをモックするために「expects」を使用しています。特定のパラメーターがオブジェクトに渡されているかどうかを確認したいと思います。

私の開発システムでは、これは問題なく動作します。同僚のコンピューターと Travis CI サーバーで、単体テストが次のエラーで失敗します。

Mocha が単体テストに追加することになっている他のすべてのメソッド、たとえば「mock()」メソッドでも同じことが起こります。

Mocha が輸入注文にうるさいことは知っています。ただし、「test/unit」の後にインポートしました:

詳細なコンテキストが必要な場合は、完全なテスト ファイルがここにあります。実際、完全なプロジェクトはオープン ソースであり、かなり小さなプロジェクトです: GitHub ; 完全なエラー ログはTravis CIで確認できます。

何を試すことができるかについて、これ以上のアイデアはありません。同僚が私とまったく同じバージョンの gem を持っていることも確認しました。Rubyのバージョンも同じです。

Ruby Guru からの助けに感謝します。本当に感謝しています!

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

ruby-on-rails - Railsで関連オブジェクトをモックする方法は?

次のようにオブジェクトをモックできることを知っています。

これは悪い習慣と見なされていると聞いたのを覚えています。私は次のようなことをしたいです

しかし、これは正しいオブジェクトをモックしていないようです。any_instanceクラスで呼び出しを使用するよりも良い解決策はありますか?

編集:私が得ているエラーメッセージは

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

ruby-on-rails - rspecで使用する場合、モカによって作成されるモックの範囲は何ですか?

私の rspec テスト スイートでは、mocha ライブラリを使用してモック/スタブを作成し、ダブルをテストします。私の rspec スイートの例は、推奨されるようにランダムな順序で実行されます。何らかの理由で、いくつかの例がランダムに失敗するようになりました。私はすでに共有データベースの状態とグローバル変数を除外しました (正直に言うと、私の Rails アプリにはグローバル変数があります)。

別の論理的な容疑者 (おそらく) は、モッキング ライブラリです。rspec のドキュメントhereによると、rspecは各例の後にすべてのモックを削除します。これは、どのモック ライブラリでも機能するはずですよね?多分...

歴史的な理由から、私のテスト スイートは組み込みの rspec モックを使用せず、mocha ライブラリを使用します。

質問: rspec は、各例の後に mocha によって作成されたすべてのモック/スタブを消去しますか?