2011-08-11 49 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() )

我無法修復此問題我添加了visitService.Setup(x => x.SoftDeleteVisit(mockVisitEntity.Object))。Verifiable();和參數的其他一些變化,但沒有運氣

謝謝

回答

0

我認爲這個問題是消費對象visitUIService已被初始化與INTIAL嘲笑接口和你後來做的設置是沒有用的。

兩種方法:

一)移動類接口後,即測試的初始化設置

B)延遲加載嘲笑如下,但您需要修改類的使用Func或Lazy也一樣。我會用Func展示它

visitUIService = new VisitUIService(()=>visitRepository.Object,()=>visitService.Object); 
相關問題