如何測試調用服務和傳遞對象的方法。如何進行單元測試服務調用
long AddFileDownloadEntry(FileDownloadEntry fde);
我明白當有一些涉及的邏輯,但這項服務只是傳遞中的對象,並在對象中的數據被插入到數據庫中如何進行單元測試。
編輯:
對不起,我不清楚,我想測試的服務的方法。
如何測試調用服務和傳遞對象的方法。如何進行單元測試服務調用
long AddFileDownloadEntry(FileDownloadEntry fde);
我明白當有一些涉及的邏輯,但這項服務只是傳遞中的對象,並在對象中的數據被插入到數據庫中如何進行單元測試。
編輯:
對不起,我不清楚,我想測試的服務的方法。
如果你的方法的責任是調用服務,並傳遞一個對象,那麼你應該確認,適當的服務方法被調用,並適當的對象傳遞。
如何做到這一點?首先,你應該依賴抽象(即在服務接口上)。那麼你應該嘲笑這種依賴性和設置期望):
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
,或者手動驗證參數。
通常,您不能單元測試這些積分點。您可以用適配器包裝方法調用,並且可以測試適配器的用法,但實際的調用不會被測試覆蓋。這就是集成點發生的情況 - 最終你需要調用服務,與數據庫交談,使用文件系統等。
這將是一個集成測試,而不是單元測試。 –