車と整備士のクラスがあるとしましょう。車には「走る」方法があります。整備士は何らかの理由で車を必要とします。次に、RSpec仕様を記述します。メカニックでは、次のような偽のクラスを定義します。
class Car; end
その後、メカニックが使用するメソッドをスタブします。テストを個別に実行すると、すべて正常に機能します。しかし、両方のテストを一緒に実行すると(rspec spec / directory /)、私のMechanic仕様は実際のCarクラスを使用します。
それで。これは、ルビーのクラスが「オープン」であり、車の仕様のためにクラスを一度ロードしたためだと思います。しかし、これを行うためのより良い方法はありますか?この種の状況のベストプラクティスは何ですか?これは、コードがおそらく緊密に結合されているため、コードにいくつかの改善が必要であることを意味しますか?
githubで簡単なデモを作成しました:https ://github.com/depy/RspecTest