더북(TheBook)

예제 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과 비교해보세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.