У меня есть контроллер с именем NewsController, конструктор этого контроллера получает INewsService в качестве параметра.
У меня есть метод в этом контроллере, называемый GetAllNews (), который возвращает результат JSON, который я использую для заполнения YUIТаблица данных.Я хочу написать модульный тест, который проверяет, был ли вызван метод FindAll службы новостей для возврата всех новостей.Как бы я это сделал?Сейчас у меня есть:
public JsonResult GetAllNews()
{
var items = newsService.FindAll();
var jsonResult = Json(items);
return jsonResult;
}
Мой модульный тест для контроллера выглядит так:
public NewsControllerTest()
{
newsServiceStub = MockRepository.GenerateStub<INewsService>();
newsController = new NewsController(newsServiceStub);
}
[Test]
public void GetAllNews_should_use_news_service()
{
// Arrange
List<News> newsList = new List<News>();
newsServiceStub.Stub(s => s.FindAll()).Return(newsList);
// Act
var actual = newsController.GetAllNews();
// Assert
newsServiceStub.VerifyAllExpectations();
}
Тест проходит с кодом выше.Но если бы я изменил GetAllNews (), чтобы он выглядел так, как показано ниже, то это тоже пройдет.Не должно ли это потерпеть неудачу?Я пытаюсь проверить, использует ли GetAllNews () службу новостей:
public JsonResult GetAllNews()
{
return null;
}