2011-08-11 7 views
0

こんにちは、私はエラーを取得していますと呼ばれていたと私は部品番号は、メソッドが

 [SetUp] 
     public void Setup() 
     { 
      visitService = new Mock<IVisitService>(); 
      visitRepository = new Mock<IVisitRepository>(); 
      visitUIService = new VisitUIService(visitRepository.Object, visitService.Object); 
     } 

     [Test] 
     public void VisitUIService_CanSoftDelete() 
     { 
      Mock<IVisitEntity> mockVisitEntity = new Mock<IVisitEntity>(); 

      visitService = new Mock<IVisitService>(); 
      visitRepository.Setup(x => x.GetVisitsByDocumentLineItems(It.IsAny<IEnumerable<int>>())).Returns(new List<IVisitEntity>() { mockVisitEntity.Object}); 

      visitUIService.DeleteVisits(new VisitDeletionModel()); 

      visitService.Verify(x => x.SoftDeleteVisit(It.IsAny<IVisitEntity>()),Times.AtLeastOnce()); 
     } 

呼び出しがモック上で実行されなかった理由を理解していない場合はチェックしていないことを確認します。x => x.SoftDeleteVisit(IsAny() )

visService.Setup(x => x.SoftDeleteVisit(mockVisitEntity.Object))を追加しましたが、これを修正できません。およびパラメータの他のいくつかのバリエーションが、運

は、私は、問題はすでにintial嘲笑のインタフェースと、あとでやっている設定で初期化されている消費するオブジェクトvisitUIServiceで有用ではないと思い、あなたに

答えて

0

に感謝します。

二つのアプローチ:

a)のインタフェースは、セットアップ

bは後の試験すなわちにクラスの初期化を移動する)は以下のようレイジーモックをロードしていますが、ためにあなたのクラスを変更する必要がありますFuncまたはLazyを使用して同じです。私はFuncを使用してそれを表示します

visitUIService = new VisitUIService(()=>visitRepository.Object,()=>visitService.Object); 
関連する問題