1

静的クラスとインスタンス クラスをテストする際の問題を説明する例を探しています。誰かがそれを提供できますか?

4

1 に答える 1

0

他の型を利用するクラスは、それらの他の型に依存していると言われます。クラス内のメソッドを単体テストするときは、通常、依存関係が何をしているかではなく、メソッドが何をしているかをテストしようとします。これらのシナリオをサポートするようにオブジェクトを設定する一般的な方法は、依存性注入を使用することです。依存性注入は、テスト容易性を向上させる一般的なパターンです。静的クラスはそのパターンではうまく機能せず、静的クラスを使用するクラスの単体テストが難しくなります。

たとえば、テストしたいクラス「A」があり、データベースにアクセスするなど、テストしたくないことを行う静的クラス「B」を使用している場合、クラス A はテストが難しくなります。 .

class A
{
    // this is hard to test because of the static call through B
    public void MethodToTest() 
    {
         // ...
         B.HitTheDatabase();
         // ...
    }
}

これを回避するには、B のラッパーを作成して A に注入するか、Molesフレームワークを使用するなどの方法があります。

于 2012-06-27T18:42:40.650 に答える