1
我無法讓我的驗證工作在數據庫調用中。要驗證模擬,是需要驗證的返回
我有一個方法,我只是試圖驗證一個數據庫調用。
我不能發佈真實的代碼,但這裏是一個很好的例子。
protected void ReportDB(uint waitTimeInMinutes)
{
//check database connection
Status dbStatus = Status.Ok;
string dbComment = "ok";
try
{
Data.GetActive("1");
}
catch (Exception ex)
{
dbComment = "Unable to access the database: " + ex.Message;
dbStatus = Status.Critical;
}
//Report Status.
}
所以基本上,GetActive()方法只是進行數據庫調用。如果它不拋出異常,那麼我們就很好,並且連接已經結束。
我的測試方法是。
[TestMethod]
public void ReportDBStatusTest()
{
_fakeData.Setup(s => s.Data.GetActive(It.IsAny<string>()));
_unitUnderTest = new Service();
_unitUnderTest.ReportDB(0);
_fakeData.Verify(s => s.Data.GetActive(It.IsAny<string>()), Times.Once());
}
我通過調試和方法被調用,一切,但驗證說,它被稱爲Times.Never。我想我可能會誤解如何正確地做到這一點。
錯誤:
上模擬一旦預期調用,但在0倍性:s => s.Data.GetActive(It.IsAny()) 配置設置和調用:
謝謝,我知道這是愚蠢的。 – Adam