私は Web API を開発しています。私が思いついたテストの 1 つは、クライアントが物理テスト ID (物理テストは私が探しているリソースです) を使用して GET 操作を行い、その物理テストが見つからない場合です。 、Web API は 404 ステータスを返す必要があります。
現在、テストに moq フレームワークを使用しており、次のコードがあります。
[TestMethod]
public void then_if_physical_test_not_found_return_not_found_status()
{
var unitOfWork = new Mock<IUnitOfWork>();
var repository = new Mock<IRepository<PhysicalTest>>();
repository.Setup(r => r.FindById(It.IsAny<int>())).Returns();
unitOfWork.Setup(m => m.PhysicalTests).Returns(repository.Object);
var pt = new PhysicalTestResource(unitOfWork.Object);
HttpResponseMessage<PhysicalTest> response = pt.GetPhysicalTest(43);
Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode)
}
リソースが見つからない場合に実際の API メソッドが返す null オブジェクトを返すには、Returns() メソッドが必要です。
Returns() メソッドのパラメーターとして null を送信しようとしましたが、成功しませんでした。