5

私のプロジェクトはすべて StructureMap をコンテナ/IoC として使用しています。これをリポジトリ パターンなどに活用しています。私の単体テスト プロジェクトでは、必要に応じてテスト リポジトリを実装しました。構造マップがどの具体的な実装を使用するかを知るために、コンテナーを初期化し、型の登録を実行する必要があります。単体テスト プロジェクトで IoC.Initialize() を呼び出す場所を探しています。単体テスト以外では、たとえば Web プロジェクトで、Global.asax から IoC コンテナー/登録を初期化できます。Global.asax に相当する単体テストを探しています (例: static void main、単体テストのメインの起動イベント エントリ ポイントに配線する方法)。私はすべてのテストに基本クラスを使用し、そこで初期化することでこれを回避しました。

助言がありますか?

更新/回答

以下は、マシューの回答に従って実装したソリューションです。

<TestClass()>
Public Module Main

    Public Property TestContext As TestContext

    <AssemblyInitialize()>
    Public Sub Initialize(_TestContext As TestContext)

        TestContext = _TestContext
        IoC.Initialize()

    End Sub

End Module
4

1 に答える 1

11

おそらく、 を探しているでしょうAssemblyInitializeAttribute。アセンブリ内のクラスでこれを使用してメソッドをデコレートすると、そのアセンブリ内のテストが実行される前に一度実行されます。

于 2013-09-17T21:25:22.380 に答える