問題タブ [pry-rails]
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 - Rails RSpec Pry「リロード!」
- ルビー2.3.1
- レール (3.2.22.4)
- rspec レール (2.14.2)
- てこレール (0.3.2)
- pry-byebug (3.6.0)
- こじ開ける (0.10.4)
少し古いバージョンの Ruby と Rails を使用しています。
Ubuntu ターミナルで RSpec テストを実行しています。
ブレークポイントを使用していpry
ます ( binding.pry
- RSpec テスト内)。
これらのブレークポイントでコードをデバッグしているときにreload!
メソッドがありません (RSpec のみ)。(変更されたモデルコードを動的にリロードすることを意味します-オンザフライで新しいメソッドを追加するなど)。このメソッドはそこで定義されていません。Railsコンソールでメソッドを定義して動作させていますがreload!
、RSpecデバッグブレークポイントでは動作していません。
reload!
RSpecでの設定方法は?
リロードする方法を pry gemで解決策を試しましたか? 、しかしどちらも私にとってはうまくいきませんでした。
これは実際のソリューションに最も近いように見えます: https://stackoverflow.com/a/50966785/6594668、実際には定義されていますreload!
が、これreload!
は何もしません。
簡単なサンプル:
Rails コンソールを実行するときに、メソッド名を から に変更foo1
しfoo2
、呼び出しますreload!
。これらの呼び出しは正常に機能します。
しかし、RSpec デバッグ ブレークポイントで同じことを行うと、実際にはコードがリロードされませんreload!
。2 つの方法のいずれかで手動で定義しても、
1. https://stackoverflow.com/a/50966785/6594668
2. https://github.com/rweng/pry-rails/issues/99#issuecomment-364272642
私がまだ欠けているもののように見えます(reload!
RSpecで動作するため)。