2017-09-22 15 views
0

私はrhinoモックでunittestingするのが初めてで、コントローラコンストラクタでunityコンテナを使用して初期化された依存関係をどうやって模倣するのか混乱しています。ユニットテストでRhino Mockを使用するには

以下のコードに従って、私は2つの依存関係TestRepositoryとRedisCacheManagerで "GetHelloWorld"メソッドをunittestする必要があります。

public class TestController : BaseController 
{ 
    private ITestRepository testRepo; 
    private IRedisCacheManager cacheManager; 

    public TestController() 
    { 
     testRepo = UnityResolver.Resolve<ITestRepository>(); 
     cacheManager = UnityResolver.Resolve<IRedisCacheManager>(); 
    } 

    public ActionResult GetHelloWorld() 
    { 
     LoggerHelper.WriteInfo("Inside GetHelloWorld Method.."); 
     testRepo.PutDataInCustomAzureDB(); 
     cacheManager.Add("Test", "TestData", new TimeSpan(0, 1, 0)); 
     var getData = cacheManager.Get<string>("Test"); 
     cacheManager.Add("Test", "TestData123", new TimeSpan(0, 1, 0)); 
     var getDataa = cacheManager.Get<string>("Test"); 
     LoggerHelper.WriteInfo("Leaving GetHelloWorld Method.."); 
     return null; 
    } 
    } 
    } 

答えて

0

あなたはユニットテストプロジェクトのために別々のUnityResolverを持っている必要があり、そこにあなたはResolve方法でモックオブジェクトを送信する必要があります。それは、これを行う別の方法は、クラス自体

resolverや依存関係を注入することであろう
Mock<IRedisCacheManager> _mockRedis = new Mock<IRedisCacheManager>(); 
container.RegisterInstance <IRedisCacheManager>(_mockRedis.Object); 

ユニットテストプロジェクトのために別々のcontainerを持っているし、その後

です
関連する問題