نوشتن تست های یکپارچه سازی موثر در بهار: استراتژی های تست سازمان یافته برای تمسخر درخواست HTTP

در این مقاله، من می خواهم رویکردی را برای نوشتن تست ها با تقسیم بندی واضح به مراحل جداگانه شرح دهم که هر کدام نقش خاص خود را انجام می دهند. این امر ایجاد آزمون‌هایی را تسهیل می‌کند که خواندن، درک و نگهداری آن‌ها آسان‌تر است.

بحث بر روی استفاده از روش Arrange-Act-Assert برای آزمایش یکپارچه سازی در چارچوب Spring با تمسخر درخواست های HTTP به منابع خارجی که در هنگام اجرای کد آزمایش شده در رفتار سیستم با آنها مواجه می شوند، متمرکز خواهد بود. آزمون های مورد بررسی با استفاده از چارچوب Spock در زبان Groovy نوشته شده اند. MockRestServiceServer به عنوان مکانیزم تمسخر استفاده خواهد شد. همچنین چند کلمه در مورد WireMock وجود خواهد داشت.

شرح مشکل

هنگام مطالعه نحوه نوشتن تست های ادغام برای بهار، اغلب به مطالبی در مورد موضوع اشاره می کردم. نمونه‌هایی برای MockRestServiceServer بیشتر رویکردی را با اعلام انتظارات به شرح زیر توصیف می‌کنند:

کد چیزی شبیه به این بود:

@Test
public void testWeatherRequest() {
    mockServer.expect(once(), requestTo("https://external-weather-api.com/forecast"))         
            .andExpect(method(HttpMethod.POST))
            .andExpect(jsonPath("$.field1", equalTo("value1")))
            .andExpect(jsonPath("$.field2", equalTo("value2")))
           ...