-3

私はその本を読みましたWorking effectivly with Legacy code

レガシーコードの依存関係を解消する技術を理解しています

しかし、これらの依存関係を初めて回避する方法を理解したいと思います。

1-静的メソッドについて:

理解しますIntroduce Instance Delegator

しかし、それは静的メソッドをまったく避けるべきだという意味ですか?

(コードの一部のマクロだけではない場合。

つまり、実際のロジックがあり、インスタンスに依存しませんか?)

2-グローバル変数

わかりましIntroduce Static Setterた、

しかし、繰り返しになりますが、Singeltonをまったく避けるべきでしょうか?

4

1 に答える 1

0

ユニットテストの世界における静的メソッドの批判は、伝統的にそれらをモックアウトするのが難しいことです。静的メソッドを回避する理由として、私はこれに同意したことはありません(そして、同意しない人を見越して、誰もがIOCコンテナを使用する贅沢を持っているわけではありません)。

JustMockなど、静的クラスをモックするツールがあります。

シングルトンをモックするためのもう1つの厄介なアプローチは、プライベートアクセサーまたはストレートリフレクションを使用した単体テスト中に、シングルトンにインターフェイスを返させ、シングルトン上のインスタンスをモックアウトさせることです。

于 2012-04-13T10:52:31.173 に答える