public async Task CreateUser_ReturnsOk() { // Arrange _hostBuilder.ConfigureTestContainer <ContainerBuilder>(builder => { var mockIdNumberService = new Mock <IIdNumberValidationService>(); mockIdNumberService.Setup(service => service.IsIdNumberValid(It.IsAny <string>())) .ReturnsAsync(true); builder.Register(c => mockIdNumberService.Object) .As <IIdNumberValidationService>(); }); var server = new TestServer(_hostBuilder); var client = server.CreateClient(); // Act var validIdNumber = "12345"; var response = await client.PostAsJsonAsync($"{_apiUrl}", new User { FirstName = "John", LastName = "Doe", IdNumber = validIdNumber }); // Assert response.EnsureSuccessStatusCode(); }
protected override void ConfigureWebHost(IWebHostBuilder builder) { //配置数据库内存测试 builder.ConfigureServices(services => { var sp = services.BuildServiceProvider(); using (var scope = sp.CreateScope()) { var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <DataDbContext>(); db.Database.EnsureCreated(); try { Utilities.InitializeDbForTests(db); } catch (Exception ex) { } } }); //注入autofac var service = A.Fake <AutoFacModule>(); void ConfigureTestContainer(ContainerBuilder builder) { builder.RegisterInstance(service); } builder.ConfigureTestContainer <ContainerBuilder>(ConfigureTestContainer); }
public async Task Get_Returns_Weather_Forecast() { // Arrange _hostBuilder.ConfigureTestContainer <ContainerBuilder>(builder => { var mockRequestValidationService = new Mock <IRequestValidationService>(); mockRequestValidationService.Setup(service => service.RequestCanBeProcessed()) .Returns(true); builder.Register(c => mockRequestValidationService.Object) .As <IRequestValidationService>(); }); var server = new TestServer(_hostBuilder); var client = server.CreateClient(); // Act var response = await client.GetAsync(_apiUrl); // Assert response.EnsureSuccessStatusCode(); }
protected override void ConfigureWebHost(IWebHostBuilder builder) { Debug.WriteLine("WebApplicationFactory.ConfigureWebHost"); builder.ConfigureTestContainer <object>( container => { // Never called :shrugging: Debug.WriteLine("builder.ConfigureTestContainer"); Debugger.Break(); }); builder.ConfigureServices( services => { Debug.WriteLine("builder.ConfigureServices"); }); builder.ConfigureTestServices( services => { Debug.WriteLine("builder.ConfigureTestServices"); }); }