我正在开发Web API,我想出的一项测试是,如果客户端使用物理测试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)
}
我需要Return()方法来返回一个空对象,这将是如果找不到资源则实际API方法将返回的对象。
我尝试在Return()方法中将null作为参数发送,但没有成功。