大きなバッチのコードにユニットテストを追加しています。テスト目的で偽のメソッドを挿入する方法を探しています。問題は、私がRubyで知っている限り、メソッドを渡すにはClassName.method(:method_name)
を使用し、次にboo()
の代わりにboo.call()
を使用するメソッドをリファクタリングする必要があるということです。 .method
と.call
のすべてをリファクタリングするより簡単な方法がありますか?.method/.callを使用しないRubyメソッドの保存と呼び出し
1
A
答えて
1
ラムダを渡すだけではどうですか?つまり、ラムダは他の言語からわかるように、匿名のメソッド/関数なので、正常に動作するはずです。例:
fake_method = lambda { |n| "do something with n" }
def other_method(fm)
#...
fm.call
#...
end
other_method(fake_method)
あなたはまだ多分メソッドのモックがお手伝いします
関連する問題
- 1. すべてのdef呼び出しのRuby呼び出しメソッド?
- 2. Ruby on Railsの呼び出しメソッド
- 3. C#スタックトレースを使用しない呼び出しメソッドの取得
- 4. Rubyメソッド呼び出し階層
- 5. javascript concat呼び出しメソッドを使用
- 6. メソッド呼び出しにtype()を使用
- 7. メソッド内でメソッドを呼び出すruby
- 8. 「保存」メソッドを呼び出した後に新しいクラスデータを再ロード
- 9. iPhone - XCode 4メソッド呼び出しもオブジェクト使用もないリンカエラー
- 10. 一般的なプログラミング - 値を使用しない非voidメソッドの呼び出し
- 11. Ruby on RailsとSymbolを使ったメソッドの呼び出し基本質問
- 12. Railsを使用しないERBの呼び出し:未定義のメソッド 'raw'
- 13. メソッド呼び出しとメソッド実行
- 14. jqueryを使用しているときにjavascriptの内部メソッド呼び出し
- 15. windbgのLogger.exeを使用してメソッド呼び出しを印刷
- 16. HTML5を使用しているDLLでメソッドを呼び出す
- 17. Instruments Leaksは存在しないメソッド呼び出しを示します
- 18. JNIを使用したC++でのメソッド呼び出し?
- 19. Android/Java:リフレクションを使用したメソッドの呼び出し?
- 20. c#JQueryを使用したサーバー側メソッドの呼び出し
- 21. メソッド/関数を2回呼び出す変数に保存して一度呼び出す
- 22. Vertxを使用したREST APIの呼び出し/呼び出し/使用
- 23. パラメータのない汎用メソッドの呼び出し方法
- 24. 要素の状態の保存と呼び出し
- 25. Ruby:initの呼び出しメソッド
- 26. WaitUntilExists()メソッドの呼び出し
- 27. ELのメソッド呼び出し
- 28. Pythonのメソッド呼び出し
- 29. メソッド呼び出しの順
- 30. Mootools:nullの呼び出しメソッド
かかわら
.call
をコールする必要がありますか?私はテストのための確かではない:ユニット、しかしrspecで彼らは素晴らしい。 –それは私がやったことです。私はすでにflexmockがこれを行うことができると知っていましたが、もう少し表現力豊かなものがほしいと思っていました。純粋なRuby(つまり、偽物)より表現力のあるものを見つけるのは難しいです。 –