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

ruby-on-rails - Windows で Ruby 2.0.0 を使用して Redmine の単体テストを実行できません。それはまったく可能ですか?

次のような Redmine の単体テストを実行しようとする試み:

これを生成します:

私はできる限りグーグルで検索しました。これまでのところ運がありません。

何か案は?素晴らしいことだ。

PS:モカがインストールされています:

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

ruby-on-rails - 機能テストでのクラスの特定のインスタンスのスタブ

特定のアイコンが X 日以上のストリークを持つユーザーのビューに表示されることをテストしたいと思います。だから私はモデルのstreakメソッドをスタブする必要があります.しかし、User私はそれがそのuid. テストコードを以下に示します。

戻り値は配列で、配列の最初の値は連続記録の日数、2 番目の値は連続記録の投稿数です。

この行は、クラスUser.any_instance.stubs(:streak).returns([8,10])のインスタンスをすべてスタブします。User次のインスタンスのみをスタブ化するようにスタブ化するにはどうすればよい:uid => 1ですか?

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

ruby - yield を返すメソッドを適切にモックアウトするにはどうすればよいですか?

Ruby では、ブロックを受け取るメソッドが次のようになるのはかなり一般的です。

メソッドが次のように見えるのもかなり慣用的です。

ファイルシステムにヒットしない仕様を書きたいと思います。これにより、ファイルから正しい単語を引き出すことが保証されます。たとえば、次のようになります。

ここでの問題は、 への呼び出しをモック化することで、File.openその戻り値も削除してしまったことです。つまり、frobnicateが を返すことになりnilます。ただし、チェーンに次のようなものを追加するFile.returns('foo bar baz')と、関心のあるコードのいずれにも実際にはヒットしないテストになってしまいます。のブロックの内容はfrobnicate何でも実行でき、テストは引き続きパスします。

frobnicateファイルシステムにアクセスせずにメソッドを適切にテストするにはどうすればよいですか? 私は特定のテスト フレームワークに特に執着しているわけではないので、もしあなたの答えが「それをやってくれるこのすばらしい宝石を使ってください」なら、私はそれでOKです。

0 投票する
6 に答える
13310 参照

javascript - プログラムで Chrome がマイクを使用できるようにするにはどうすればよいですか?

現在、webdriverjs と chromedriver で作成されたいくつかのテストを実行しようとしていますが、マイクのアクセス許可が必要です。

これは表示されるポップアップです:

ポップアップ画像

私が試してみました:

しかし、うまくいきませんでした。

私も試しました

それもうまくいきませんでした!これは通常のアラートではないと思います。

便利なリンク:

Chrome 起動引数リスト

Java と Ruby の Chrome オプション

Chrome ドライバーの github

プログラムでアクセス許可を与えるにはどうすればよいですか?

これを回避するフラグまたは他の方法はありますか?

0 投票する
0 に答える
65 参照

ruby-on-rails - Rails after_filter は、Mocha の unstub への自動呼び出しの前または後に実行されますか?

私のコントローラ クラスは ActionController::Base から継承しています。

Rails 2 と Ruby 1.9.3 を使用しています。

Perforce への呼び出しをスタブ化するために Mocha を使用しているため、テストは perforce への接続に依存しません。

Rails after_filter で、まだスタブ化されていないことを期待して、スタブ化されたメソッドの 1 つを呼び出します。通常のアプリケーションでは、Perforce 接続を解放します。

次のエラー メッセージが表示されます。

予期しない呼び出し: Api::BuildsController.perforce_service()

メソッドperforce_serviceは私がスタブアウトしたメソッドです。Mocha によって既にスタブが解除された後に呼び出されていると思われますが、よくわかりません。after_filter に対して Mocha のスタブ解除はいつ行われますか? これをどのように設計すればよいですか?

pry でオブジェクトのメソッドを手動でスタブ化およびアンスタブ化しようとすると、unstub を呼び出した後でもメソッドを呼び出すことができますが、これは予期したことではありません。unstub は元のメソッドを復元するか、元のメソッドがなかった場合は未定義のメソッドの状態に復元することを期待しています。それは本当に何をしますか?

ノート:

Rails を使用する場合、Mocha のドキュメントでは、これを test_helper.rb に入れるように指示されています。

ただし、これを Gemfile に追加して bundle install を実行すると、次のようになります。

次に、エラーが発生します。

ここで何が間違っていますか?

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

ruby - Mochaで特定のパラメータを使用してメソッドをスタブ化する(および他のパラメータを使用して呼び出しをスタブ化しない)方法は?

この質問はこれと重複しているように見えるかもしれませんが、受け入れられた回答は私の問題には役立ちません。

環境

Rails 5 では、コントローラー テスト (現在は ActionDispatch::IntegrationTest から継承されています) でセッションを直接操作することはサポートされていないため、モック化とスタブ化という暗い道をたどっています。

これは悪い習慣であり、コントローラーをテストするためのより良い方法があることは知っています (そして、統合テストへの移行を理解しています) が、完全な統合テストを実行して、設定するためだけに 1 つのテストで複数のアクションを呼び出したくありません。特定のセッション変数。

シナリオ

Mochaを使用すると、セッション変数のモック/スタブは実際には非常に簡単です。

問題は、Railsがセッション内に多くのものを保存しsession.inspect(ビューの 1 つのどこかで実行するだけ)、:[]メソッドをスタブ化すると明らかにそれらのいずれにもアクセスできなくsession[:some_other_variable]なることです (したがって、テストでは機能しなくなります)。

質問

:[]特定のパラメーターで呼び出された場合にのみメソッドをスタブ/モックし、他のすべての呼び出しをスタブ化しない方法はありますか?

私は何かを望んでいただろう

しかし、私はそれを成し遂げる方法を見つけることができませんでした。

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

ruby - Ruby Mocha は、最初の引数がシンボルであることを期待しています

最初の引数が次のようなシンボルである場合にメソッド呼び出しが発生すると主張しようとしています:

Foo.bar(:some_key, {})

この段階では、2番目の引数が何であるかはあまり気にしません。

私はもう試した:

Foo.expects(:bar).with(includes(:some_key))

およびその他のバリエーションは、こちらのドキュメントに記載されています。引数を伴うメソッド呼び出しが予想される場合、テストはパスします。

何か案は?