ベリファイをDB呼び出しで機能させるのに問題があります。
データベース呼び出しが行われたことを確認しようとしているメソッドがあります。
実際のコードを投稿することはできませんが、ここに近い例があります。
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と呼ばれていることが示されます。私はこれを正しく行う方法を誤解しているだけかもしれないと思います。
エラー:
モックでの呼び出しが1回期待されていましたが、0回でした。s=> s.Data.GetActive(It.IsAny())構成されたセットアップと呼び出し: