我应该如何在 .NET Core 1.1 或更高版本下使用 Mocking 和 Fakes?
How should I use Mocking and Fakes under .NET Core 1.1 or higher?
我已经使用 .NET Framework 4.X 多年了,我刚刚切换到 .NET Core。由于我想做TDD,所以我想使用模拟框架和微软假货。但是,我不清楚如何为 .NET Core 执行此操作,因为不支持经典解决方案。
谁能告诉我应该如何在 .NET Core 1.1 下使用 Mocking 和 Fakes?
- 使用 nuget
安装 "Moq"
- 使用 NUnit 或类似工具创建单元测试
这样写:
// 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());
我已经使用 .NET Framework 4.X 多年了,我刚刚切换到 .NET Core。由于我想做TDD,所以我想使用模拟框架和微软假货。但是,我不清楚如何为 .NET Core 执行此操作,因为不支持经典解决方案。
谁能告诉我应该如何在 .NET Core 1.1 下使用 Mocking 和 Fakes?
- 使用 nuget 安装 "Moq"
- 使用 NUnit 或类似工具创建单元测试
这样写:
// 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());