한 가지 이유는 테스트 자체의 가독성을 높일 수 있기 때문입니다. 테스트를 위해서 필요한 부분만 남겨두니까요. 서비스에 어떤 값을 게시하면 성공 여부를 응답으로 보내줍니다. 로버트 마틴의 추상화 정의에 따르면 이런 형태는 추상화의 좋은 예가 될 수 있습니다.
“추상화란 무관한 것을 제거하고, 본질적인 것을 강조하는 것입니다.”[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);
}