2012-10-30 124 views
0

如何測試調用服務和傳遞對象的方法。如何進行單元測試服務調用

long AddFileDownloadEntry(FileDownloadEntry fde); 

我明白當有一些涉及的邏輯,但這項服務只是傳遞中的對象,並在對象中的數據被插入到數據庫中如何進行單元測試。

編輯:

對不起,我不清楚,我想測試的服務的方法。

+1

這將是一個集成測試,而不是單元測試。 –

回答

1

我建議mocking,服務和verify

  • 預期的方法調用次數
  • 預期的方法被稱爲與預期參數預期數量。
1

如果你的方法的責任是調用服務,並傳遞一個對象,那麼你應該確認,適當的服務方法被調用,並適當的對象傳遞。

如何做到這一點?首先,你應該依賴抽象(即在服務接口上)。那麼你應該嘲笑這種依賴性和設置期望):

FileDownloadEntry fde = // create entry 
Mock<IFooService> serviceMock = new Mock<IFooService>(); 
serviceMock.Setup(s => s.AddFileDownloadEntry(fde)).Returns(someReturnValue); 

SUT sut = new SUT(serviceMock.Object); // inject dependency 
sut.YourMethod(); // act 

serviceMock.VerifyAll(); 

此示例使用Moq測試庫。

BTW默認情況下,Moq將通過引用比較傳遞的參數。如果您希望按值進行比較,則應該覆蓋FileDownloadEntry上的Equals,或者手動驗證參數。

1

通常,您不能單元測試這些積分點。您可以用適配器包裝方法調用,並且可以測試適配器的用法,但實際的調用不會被測試覆蓋。這就是集成點發生的情況 - 最終你需要調用服務,與數據庫交談,使用文件系統等。

相關問題