此文档记录Fixture常见用法
-
mock数据库连接
//创建内存数据库
var dbContextOptions = new DbContextOptionsBuilder<MgmtDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString()).Options
// mock 数据库连接
var mockedDbContext = Create.MockedDbContextFor<MgmtDbContext>(dbContextOptions)
-
mock 数据库相关操作
var mockRole = fixture.Build<RolePO>()
.With(p => p.Id, roleId).Create()
mockedDbContext.Roles.FindAsync(roleId)
.Returns(mockRole)
var mockRole = fixture.Build<RolePO>()
.With(p => p.Id, roleId).Create()
mockedDbContext.Roles.Add(mockRole)
mockedDbContext.SaveChanges()
-
官方使用方式
var fixture = new Fixture()
var someDto = fixture.Create<ClientDto>()
var fixture = new Fixture().Customize(new AutoMoqCustomization())
var sut = fixture.Create<MyService>()
var mailComposerMock = fixture.Freeze<Mock<MailComposer>>()