Я новичок в Moq и пытаюсь получить мой макет, чтобы вернуть значение в ASP.NET MVC. Документы here. Код:Moq Возвращает метод возвращает null
mock = new Mock<IRepository<Story>>();
mock.Setup(x => x.GetById(It.Is<int>(i => i==10)))
.Returns(It.Is<Story>((Story story) => story.Id == 10 && story.Hits == 0));
storiesController = new StoriesController(mock.Object);
ViewResult result = storiesController.Details(10) as ViewResult;
и Details
метод вызывает storyRepository.GetById(id)
и этот тест не пройден: Assert.IsNotNull(result);
потому GetById
метод возвращает нуль.
Что я делаю неправильно?
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Story story = storyRepository.GetById(id);
if (story == null)
{
return HttpNotFound();
}
story.Hits++; // TODO!
storyRepository.Update(story);
storyRepository.Save();
return View(story);
}
Это метод детали. В режиме отладки я вижу, что извлеченная история имеет значение null, как только я перехожу к методу GetById.
Ох, конечно, извините за недоразумение. Благодаря! – KSHMR
@Johnath Пожалуйста, отметьте правильный ответ. –
Сделаю, как только смогу, он говорит, что могу отметить через 5 минут – KSHMR