(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Stutt leiðbeining um hvernig á að keyra gámana úr prófunum - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2022-08-16
Hugbúnaðarþróun

Stutt leiðarvísir um hvernig á að keyra gámana úr prófunum

Bartlomiej Kuczyński

Lærðu hvernig á að keyra ílátaprófanir í Java-tengdu greininni okkar þar sem reyndur Java-þróunaraðili okkar sýnir alla töfrana.

Hér er tómt.

Ég nota Vor-Botn í verkefni til að draga úr endurteknum kóða. Prófunarílát eru óháð Spring-ramminn og þú getur notað þau án þess.

Ég nota Testcontainers útgáfu 1.17.3, en endilega notaðu nýjustu útgáfuna. Prófanir með Postgres-íláti.

Fyrst skaltu skilgreina ílát:

public class Postgres13TC extends PostgreSQLContainer {
  private static final Postgres13TC TC = new Postgres13TC();

  private Postgres13TC() {
    super("postgres:13.2");
  }

  public static Postgres13TC getInstance() {
    return TC;
  }

  @Override
  public void start() {
    super.start();
    System.setProperty("DB_URL", TC.getJdbcUrl());
    System.setProperty("DB_USERNAME", TC.getUsername());
    System.setProperty("DB_PASSWORD", TC.getPassword());
  }

  @Override
  public void stop() {
    // gera ekkert. Þetta er deilt eintak. Látið JVM sjá um þessa aðgerð.
  }
}

Síðan frumstilla Spring-forrits samhengi. Við fáum allt gögn Fá upplýsingar um stillingar úr gámdæmi og stilla þær sem Spring-stillingar:

public class ContainerInit implements ApplicationContextInitializer {

  public static Postgres13TC postgres13TC;

  static {
    postgres13TC = Postgres13TC.getInstance();
    postgres13TC.start();
  }

  @Override
  public void initialize(ConfigurableApplicationContext applicationContext) {
    TestPropertySourceUtils.addInlinedPropertiesToEnvironment(
 applicationContext,
 "spring.datasource.url=" + postgres13TC.getJdbcUrl(),
        "spring.datasource.username=" + postgres13TC.getUsername(),
 "spring.datasource.password=" + postgres13TC.getPassword(),
 "db.host=" + postgres13TC.getHost(),
 "db.port=" + postgres13TC.getMappedPort(postgres13TC.POSTGRESQL_PORT),
 "db.name=" + postgres13TC.getDatabaseName(),
 "db.username=" + postgres13TC.getUsername(),
 "db.password=" + postgres13TC.getPassword()
    );
  }
}

Að lokum getum við keyrt prófið okkar, og allt verður ræst undir vélinni:

@SpringBootTest(webEnvironment = RANDOM_PORT)
@AutoConfigureTestDatabase(replace = NONE)
@ContextConfiguration(initializers = ContainerInit.class)
@Testcontainers
class DummyRepositoryTest {

  @Autowired
  private DummyRepository dummyRepository;

  @Test
  void shouldReturnDummy() {
    var byId = dummyRepository.getById(10L);
    var expected = new Dummy();
    expected.setId(10L);
    assertThat(byId).completes().emitsCount(1).emits(expected);
  }
}

Eða ef við viljum keyra sjálfstæða prófun í Spring, getum við notað gám beint:

@Testcontainers
class SimpleDbTest {

  @Container
  private static final Postgres13TC postgres13TC = Postgres13TC.getInstance();

  @Test
  void testConnection() {
    assumeThat(postgres13TC.isRunning());
    var connectionProps = new Properties();
    connectionProps.put("user", postgres13TC.getUsername());
    connectionProps.put("password", postgres13TC.getPassword());
    try (Connection connection = DriverManager.getConnection(postgres13TC.getJdbcUrl(),
 connectionProps)) {
    var resultSet = connection.prepareStatement("Select 1").executeQuery();
    resultSet.next();
    assertThat(resultSet.getInt(1)).isEqualTo(1);
    } catch (SQLException sqlException) {
    assertThat((Exception) sqlException).doesNotThrowAnyException();
    }
  }
}

Að draga saman

Testcontainers eru mjög auðveld í notkun verkfæri sem hjálpa okkur að búa til samþættingapróf sem nota Docker ílát. Það gefur okkur meiri sveigjanleika og eykur þróunarhraða. Rétt uppsetning prófunarstillinga dregur úr þeim tíma sem þarf til að taka nýja þróunaraðila inn í teymið. Þeir þurfa ekki að setja upp allar forsendur, heldur eingöngu keyra skrifuðu prófin með valin stillingarskrár.

samstarfsfáninn

Tengdar greinar

Hugbúnaðarþróun

9 villur sem ber að forðast við forritun í Java

Hvaða villur ætti að forðast við forritun í Java? Í eftirfarandi kafla svörum við þessari spurningu.

The Codest
Rafal Sawicki Java-forritari
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Hvernig getur Java stutt við fyrirtækið þitt?

Kynntu þér hvernig Java og Java Virtual Machine (JVM) styðja stöðugan og stækkanlegan viðskiptahugbúnað og hvenær skynsamlegt er að velja Java.

Bartlomiej Kuczynski
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Rétti hátturinn til að finna bestu Java-þróunaraðila

Að finna hinn fullkomna Java-þróunaraðila getur verið krefjandi verkefni. Þar sem eftirspurn markaðarins eftir slíkum sérfræðingum vex með ótrúlegum hraða, geta tiltækar heimildir til að leita að hæfileikum stundum virst...

The Codest
Grzegorz Rozmus Java einingaleiðtogi

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic