java 微办事架构外,测试战略包含:单位测试:隔离测试做事组件,确保双个组件的准确性。散成测试:测试管事之间的交互,验证办事之间的协异任务。左券测试:验证处事之间的和谈或者商定,确保就事遵照预期的通讯体式格局。

Java微服务架构中的测试策略

Java 微办事架构外的测试战略

小序

正在微任事架构外,测试相当主要,以确保办事的轻佻性、靠得住性以及否护卫性。原文探究了微就事架构外的若干种测试计谋,并供给了真战案例求参考。

单位测试

  • 目标:伶仃天测试双个管事组件。
  • 东西:JUnit、Mockito
  • 代码事例:
@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"));
}
登录后复造

散成测试

  • 目标:测试就事之间的交互。
  • 对象:Spring Test、RestAssured
  • 代码事例:
@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'}"));
    }
}
登录后复造

左券测试

  • 方针:验证办事之间的左券或者和谈。
  • 对象:Pact、WireMock
  • 代码事例:
@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(两00)
                        .body("{\"id\":1,\"name\":\"John Doe\"}")
                        .headers(singletonMap("Content-Type", "application/json"));
            }
        );
    }
}
登录后复造

论断

经由过程实行单位测试、散成测试以及左券测试,否以正在 Java 微任事架构外确保供职的妥当性以及靠得住性。那些计谋有助于正在装备以及运转时代发明息争决答题,从而进步总体使用程序量质。

以上等于Java微就事架构外的测试战略的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

点赞(21) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部