예제 4-22 테스트를 위해 실제 의존성을 가짜로 대체하는 방법
(Restaurant/c82d82c/Restaurant.RestApi.Tests/RestaurantApiFactory.cs)
public class RestaurantApiFactory : WebApplicationFactory<Startup>
{
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
if (builder is null)
throw new ArgumentNullException(nameof(builder));
builder.ConfigureServices(services =>
{
services.RemoveAll<IReservationsRepository>();
services.AddSingleton<IReservationsRepository>(
new FakeDatabase());
});
}
}
유닛 테스트에서는 새로운 RestaurantApiFactory 클래스를 사용해야 하는데, 기존의 PostReservation 도우미 메서드에서 한 줄만 바꾸면 됩니다. 예제 4-23을 예제 4-8과 비교해보세요.