2011-08-03 9 views
1

私のGlobal.asax ** Application_Start()**構成がのAutoMapperです。この構成は、アプリケーションが実行されるたびにトリガーされます。テストプロジェクトのglobal.asaxにある設定メソッドを呼び出す方法は?

私はオートマッパーを私のコントローラに使用しています。

私は私のコントローラをテストするためにテストプロジェクトを持っていると私は私のテストプロジェクトが発射されるたびにAutoMapperのこの設定をトリガーする必要があります。

そこからAutoMapperのこの設定メソッドを呼び出すGlobal.asaxので私はのApplication_Start(のようなものを持っている私のテストプロジェクトで場所)はありますか?

答えて

1

テストクラスに初期化メソッドを追加して、それに[TestInitialize()]属性を設定してみてください。

namespace TestNamespace 
{ 
    [TestClass()] 
    public class TestClass 
    { 
     [TestInitialize()] 
     public void Initialize() 
     { 
     // some initialization code 
     } 
    } 
} 
+0

私は、各テストでそれを行う必要がありますか?私はそれを避けたい –

+0

あなたはテストではない各テストCLASSでそれを行うべきです。テストクラスは多くのテストを構成します。 – vladimir77

+0

ところで、私はあなたが多くのテストでモックを使うと思うので、グローバル初期化は必要ありません。 – vladimir77

0

私たちはまだこれを行うための別のオプションを探しています。 App_Startフォルダで

  • 、クラスファイルを追加AutoMapperConfig.cs

    namespace MyNameSpace 
    { 
        public class AutoMapperConfig 
        { 
        public static void Register() 
        { 
         // Your AutoMapper configuration should go in here 
        } 
        } 
    }  
    
  • global.asaxApplication_Start()方法は

    AutoMapperConfig.Register(); 
    
  • を追加今すぐあなたのテストクラスであなたが呼び出すことができるはずです同じ設定方法(mvcプロジェクトを参照する必要があります)。

    [TestMethod] 
    public void AutoMapper_Configuration_Should_Succeed() 
    { 
        AutoMapperConfig.Register(); 
        Mapper.AssertConfigurationIsValid(); 
    } 
    
  • または(あなたが設定が必要とされる複数のテストを持っている場合)

    [TestInitialize()] 
    public void Initialize() 
    { 
        AutoMapperConfig.Register(); 
    } 
    
    [TestMethod] 
    public void AutoMapper_Configuration_Should_Succeed() 
    { 
        Mapper.AssertConfigurationIsValid(); 
    } 
    
関連する問題