Rumah  >  Artikel  >  Java  >  Menguji strategi dalam seni bina microservices Java

Menguji strategi dalam seni bina microservices Java

WBOY
WBOYasal
2024-06-06 10:42:40576semak imbas

Dalam seni bina perkhidmatan mikro Java, strategi ujian termasuk: Ujian unit: Uji komponen perkhidmatan secara berasingan untuk memastikan ketepatan komponen individu. Ujian integrasi: Uji interaksi antara perkhidmatan dan sahkan kerja kerjasama antara perkhidmatan. Ujian kontrak: Mengesahkan perjanjian atau konvensyen antara perkhidmatan untuk memastikan perkhidmatan mengikut kaedah komunikasi yang diharapkan. . Artikel ini meneroka beberapa strategi ujian dalam seni bina perkhidmatan mikro dan menyediakan kes praktikal untuk rujukan.

Menguji strategi dalam seni bina microservices JavaUjian Unit

Tujuan:

Uji satu komponen perkhidmatan secara berasingan.

Alat:

JUnit, Mockito

Contoh kod:

    @Test
    public void testUserServiceFindById() {
        // 设置模拟对象
        UserRepository userRepository = Mockito.mock(UserRepository.class);
        UserService userService = new UserService(userRepository);
    
        // 模拟用户查找操作
        Mockito.when(userRepository.findById(1L)).thenReturn(Optional.of(new User(1L, "John Doe")));
    
        // 断言查找结果
        assertThat(userService.findById(1L).getId(), is(1L));
        assertThat(userService.findById(1L).getName(), is("John Doe"));
    }
  • Pengujian integrasi
  • interaksi antara perkhidmatan.
  • Alat: Spring Test, RestAssured

Contoh Kod:

@WebMvcTest(UserController.class)
class UserControllerIntegrationTest {

    @Autowired
    private MockMvc mockMvc;

    @Autowired
    private UserRepository userRepository;

    @BeforeEach
    public void setup() {
        // 设置模拟用户数据
        userRepository.deleteAll();
        userRepository.save(new User(1L, "John Doe"));
    }

    @Test
    public void testFindById() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/users/1"))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andExpect(MockMvcResultMatchers.content().json("{id:1,name:'John Doe'}"));
    }
}
  • Contract Test
  • Purpose antara perkhidmatan
Alat:

Pakta, WireMock

Contoh kod:
  • @SpringJUnitConfig
    class ContractTest {
    
        @Autowired
        private PactVerifier verifier;
    
        @TestTemplate
        @ExtendWith(SpringExtension.class)
        public void pactVerificationTest(MockServerServer wireMockServer, Pact providerState, Interaction interaction) throws IOException {
            verifier.verifyPact(providerState, interaction, wareMockServer.getUrl());
        }
    
        @Pact(provider="UserService", consumer="Client")
        public RequestResponsePact createPact(MockServer mockServer) {
            return Pact.define(
                (request) -> {
                    request.method("GET")
                            .path("/")
                            .headers(singletonMap("Content-Type", "application/json"));
                },
                (response) -> {
                    response.status(200)
                            .body("{\"id\":1,\"name\":\"John Doe\"}")
                            .headers(singletonMap("Content-Type", "application/json"));
                }
            );
        }
    }
  • Kesimpulan
  • Dengan melaksanakan ujian unit, ujian kebolehpercayaan perkhidmatan dan kontrak Java boleh memastikan kebolehpercayaan perkhidmatan mikro dan kontrak . Strategi ini membantu mengenal pasti dan menyelesaikan isu semasa penggunaan dan operasi, dengan itu meningkatkan kualiti aplikasi keseluruhan.

Atas ialah kandungan terperinci Menguji strategi dalam seni bina microservices Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn