2

私はテストの強力な支持者であり、単体テストを作成できるようにするために追加のインターフェイスを作成する必要があるのは、支払う代償が小さいと思います。構造マップ オートモッカーをテスト スイートに追加しましたが、クラスをモックすることは絶対にできないようです。Rhino モックには、パブリック メソッドが仮想としてマークされている限り、パブリック クラスをモックする機能があります。

可能であれば、インターフェイスを取り除きたいです。ありとあらゆる助けをいただければ幸いです。

4

1 に答える 1

1

これに答える前に、インターフェイスを使用しない場合、StructureMapを使用する目的が完全に無効になることを指摘しておきます。(まあ、完全ではありませんが、そもそもなぜStructureMapを使用することにしたのか疑問に思うためにそれを使用する目的を十分に打ち負かしています...)インターフェイスがない場合、またはそうすると、すべてのロジックが1つのクラスに配置されるか、20〜30のクラスがすべて緊密に結合されます。これも、StructureMapを使用する意味がありません。これは、具体的なクラスをモックアウトする必要がある状況で機能するはずだと私は言っています

[Test]
public void TestMethod()
{
    // Arrange
    var service = new RhinoAutoMocker<BusinessRuleService>();
    service.PartialMockTheClassUnderTest();
    service.ClassUnderTest.Expect(x => x.VirtualMethodImTesting());

    // Act
    service.ClassUnderTest.CallableMethod();

    // Assert
    service.ClassUnderTest.VerifyAllExpectations();
    // ... or other stuff ...
}
于 2012-12-05T23:12:41.520 に答える