더북(TheBook)

한 가지 이유는 테스트 자체의 가독성을 높일 수 있기 때문입니다. 테스트를 위해서 필요한 부분만 남겨두니까요. 서비스에 어떤 값을 게시하면 성공 여부를 응답으로 보내줍니다. 로버트 마틴의 추상화 정의에 따르면 이런 형태는 추상화의 좋은 예가 될 수 있습니다.

“추상화란 무관한 것을 제거하고, 본질적인 것을 강조하는 것입니다.”[60]

예제 4-8 PostReservation 도우미 메서드. 이 메서드는 테스트 코드베이스 안에 정의되어 있습니다.
(Restaurant/90e4869/Restaurant.RestApi.Tests/ReservationsTests.cs)

[SuppressMessage(
    "Usage",
    "CA2234:Pass system uri objects instead of strings",
    Justification = "URL isn't passed as variable, but as literal.")]
private async Task<HttpResponseMessage> PostReservation(
    object reservation)
{
    using var factory =  new WebApplicationFactory<Startup>();
    var client = factory.CreateClient();

    string json = JsonSerializer.Serialize(reservation);
    using var content =  new StringContent(json);
    content.Headers.ContentType.MediaType = "application/json";
    return await client.PostAsync("reservations", content);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.