私がクラスCarとMechanicを持っているとします。車には「走る」方法があります。メカニックには何らかの理由でCarが必要です。その後、私はRSpec仕様書を書く。メカニックでは、次のような擬似クラスを定義します。クラス定数を偽るRSpec仕様のベストプラクティスまたは回避策
class Car; end
以降のメソッドスタブは、メカニックがそのメソッドを使用します。テストを別に実行すると、すべて正常に動作します。しかし、両方のテストを一緒に実行すると(rspec spec/directory /)、私のMechanicスペックは実際のCarクラスを使用します。
So. Rubyのクラスは "オープン"で、カー仕様のためにすでにクラスをロードしているからです。しかし、これを行うよりよい方法はありますか?このような状況のベストプラクティスは何ですか?これは私のコードがおそらく緊密に結合されているためにいくつかの改善が必要なことを意味しますか?
私はgithubのに迅速なデモをした:https://github.com/depy/RspecTest
しかし、時には私はクラスに何か他のものが含まれているクラスが必要です。私は必要な前に "else"を偽造しなければなりません。そのことについて何? –
これは、私が前のブロックでやったことを言った振る舞いです。 uは2つのクラスを持つことができます.1つはクラスごとに1つ前のブロックでは、最初の呼び出しに基づいて他のオブジェクトを返すスタブを作成できます。 –