首页 > 解决方案 > 有没有办法停止多线程测试,以免在数据库端相互干扰?

问题描述

我正在为多线程微服务实现测试,我担心在数据库中进行检查的测试不会相互干扰,是否可以退出?

这些测试大部分是这样的:

@Test @Transactional public void createRefillOfferEvent() throws Exception { int databaseSizeBeforeCreate = refillOfferEventRepository.findAll().size();

   // Create the RefillOfferEvent
    RefillOfferEventDTO refillOfferEventDTO = refillOfferEventMapper.toDto(refillOfferEvent);
    restRefillOfferEventMockMvc.perform(post("/api/refill-offer-events")
        .contentType(TestUtil.APPLICATION_JSON_UTF8)
        .content(TestUtil.convertObjectToJsonBytes(refillOfferEventDTO)))
        .andExpect(status().isCreated());

    // Validate the RefillOfferEvent in the database
    List<RefillOfferEvent> refillOfferEventList = refillOfferEventRepository.findAll();
    assertThat(refillOfferEventList).hasSize(databaseSizeBeforeCreate + 1);
    RefillOfferEvent testRefillOfferEvent = refillOfferEventList.get(refillOfferEventList.size() - 1);
    //assertThat(testRefillOfferEvent.getRequestDate()).isEqualTo(DEFAULT_REQUEST_DATE);
    assertThat(testRefillOfferEvent.getRequesttransactionid()).isEqualTo(DEFAULT_REQUESTTRANSACTIONID);
    assertThat(testRefillOfferEvent.getMsisdn()).isEqualTo(DEFAULT_MSISDN);
    assertThat(testRefillOfferEvent.getPlatform()).isEqualTo(DEFAULT_PLATFORM);
    assertThat(testRefillOfferEvent.getOfferId()).isEqualTo(DEFAULT_OFFER_ID);
    assertThat(testRefillOfferEvent.getOfferName()).isEqualTo(DEFAULT_OFFER_NAME);
    assertThat(testRefillOfferEvent.getOfferAmount()).isEqualTo(DEFAULT_OFFER_AMOUNT);
    assertThat(testRefillOfferEvent.getOfferProfileId()).isEqualTo(DEFAULT_OFFER_PROFILE_ID);
    assertThat(testRefillOfferEvent.getResponseStatus()).isEqualTo(DEFAULT_RESPONSE_STATUS);
    assertThat(testRefillOfferEvent.getResponseCode()).isEqualTo(DEFAULT_RESPONSE_CODE);
    assertThat(testRefillOfferEvent.getResponseDescription()).isEqualTo(DEFAULT_RESPONSE_DESCRIPTION);
    assertThat(testRefillOfferEvent.getInfo1()).isEqualTo(DEFAULT_INFO_1);
    assertThat(testRefillOfferEvent.getInfo2()).isEqualTo(DEFAULT_INFO_2);
    assertThat(testRefillOfferEvent.getInfo3()).isEqualTo(DEFAULT_INFO_3);
    assertThat(testRefillOfferEvent.getInfo4()).isEqualTo(DEFAULT_INFO_4);
    assertThat(testRefillOfferEvent.getInfo5()).isEqualTo(DEFAULT_INFO_5);

    // Validate the RefillOfferEvent in Elasticsearch
    RefillOfferEvent refillOfferEventEs = refillOfferEventSearchRepository.findOne(testRefillOfferEvent.getId());
    assertThat(refillOfferEventEs).isEqualToIgnoringGivenFields(testRefillOfferEvent);
}`

这就是我得到的

失败的测试:RefillOfferEventResourceIntTest.deleteRefillOfferEvent:394 预期大小:<6> 但在:<7> 中:

标签: javaspringmultithreadingtesting

解决方案


推荐阅读