Как использовать Mocking и подделки под.NET Core 1.1 или выше?

Я использую.NET Framework 4.X в течение многих лет, и я просто переключился на.NET Core. Поскольку я хочу делать TDD, я хочу использовать насмешливую фреймворк и подделки Microsoft. Однако мне непонятно, как это сделать для.NET Core, поскольку классические решения не поддерживаются.

Может ли кто-нибудь сказать мне, как я должен использовать Mocking и подделки в.NET Core 1.1?

Ответ 1

  1. Установите "Moq", используя nuget
  2. Создание модульного теста с использованием NUnit или аналогичного
  3. Напишите что-то вроде этого:

        // Arrange
        var mock = new Mock<IRepository>();
        mock.Setup(repo=>repo.GetAll()).Returns(GetTestPhones());
        var controller = new HomeController(mock.Object);
    
        // Act
        var result = controller.Index();
    
        // Assert
        var viewResult = Assert.IsType<ViewResult>(result);
        var model = Assert.IsAssignableFrom<IEnumerable<Phone>>(viewResult.Model);
        Assert.Equal(GetTestPhones().Count, model.Count());