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

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

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 コンソールを実行するときに、メソッド名を から に変更foo1foo2、呼び出しますreload!。これらの呼び出しは正常に機能します。

しかし、RSpec デバッグ ブレークポイントで同じことを行うと、実際にはコードがリロードされませんreload!。2 つの方法のいずれかで手動で定義しても、

1. https://stackoverflow.com/a/50966785/6594668

2. https://github.com/rweng/pry-rails/issues/99#issuecomment-364272642

私がまだ欠けているもののように見えます(reload!RSpecで動作するため)。