2016-07-09 3 views
0

から値を返しません。私のTestMethodからこのメソッドを呼び出すと、RoomServiceRepositoryはroomServiceを返しません。私のtestMethodは次のようになります:リポジトリは、私はユニットテストで新たなんだと私は私のサービスの以下の方法のためのユニットテストを書くことをしようとしている私の試験方法

[TestClass] 
public class InventoryTest 
{ 
    private UnityContainer _container; 
    readonly MockObjectsSetup _mos = new MockObjectsSetup(); 
    private IInventoryService _inventoryService; 

    [TestInitialize] 
    public void SetupTest() 
    { 
     _container = new UnityContainer(); 
     _mos.Setup(_container); 
     Config.UnityTestConfig.RegisterTypes(_container); 
     _container.RegisterType<IInventoryService, InventoryService>(); 
     _inventoryService = (InventoryService)_container.Resolve(typeof(InventoryService)); 
    } 

    [TestMethod] 
    public void Dont_Change_NotSelected_PriceValues() 
    { 
     DateTime startDate = DateTime.Parse("6/21/2016"); 
     DateTime endDate = DateTime.Parse("6/22/2016"); 

     long roomServiceId = 17; 
     InventoryViewModel invViewModel = new InventoryViewModel(); 

     invViewModel.isUpdatingBoardPrice = invViewModel.isUpdatingPrice = invViewModel.isUpdatingFloatAvailability = true; 
     invViewModel.isUpdatingCertainAvailability = false; 
     invViewModel.StartDate = startDate; 
     invViewModel.EndDate = endDate; 
     invViewModel.RoomServiceId = roomServiceId; 
     invViewModel.CertainAvailability = 0; 
     invViewModel.FloatAvailability = 8; 

     var inv = _inventoryService.GetInventory(startDate, endDate, roomServiceId); 

     .... 
    } 
} 
+0

あなたの 'inventoryService'を嘲笑して例外はありますか? –

+0

私はそれを嘲笑していない、私が言ったように、私は新しく、私はサービスを模擬する方法を知らない。 –

答えて

0

あなたのテストでDIとIOCに頼るのを止め、モックの使用を開始する必要があります。

RhinoMockのようなものがありますが、他のフレームワークもあります。

サービスを準備し、通常はデータベースから来るデータを返すようにしてから、いくつかの機能を実行し、テストしたいメソッドを呼び出し、その結果がどうなるかを考えてください。

効果的に言えば、データがどこから来ているか気にする必要はありませんが、レスポンスが制御されている必要があり、それがあなたが嘲笑しているものです。あなたは機能性だけを気にします。それは理にかなっていますか?

関連する問題