Ich entwickle eine Web-API, und einer der Tests, die ich mir ausgedacht habe, ist, dass, wenn der Client eine GET-Operation mit einer physischen Test-ID ausführt (physischer Test ist die Ressource, nach der ich suche) und dieser physische Test nicht gefunden wird sollte die Web-API einen 404-Status zurückgeben.
Jetzt verwende ich das moq-Framework für meine Tests und habe den folgenden Code:
[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)
}
Ich benötige die Returns () -Methode, um ein Nullobjekt zurückzugeben. Dies ist das, was die eigentliche API-Methode zurückgeben würde, wenn die Ressource nicht gefunden wird.
Ich habe versucht, null als Parameter in der Returns () -Methode zu senden, hatte aber keinen Erfolg.