Haza > Blog > Tartalom

Hogyan lehet tesztelni a Spring Boot Mybatis Mapper interfészeket a Spring Testerrel?

Oct 13, 2025

A Spring Boot Mybatis Mapper interfészek tesztelése kulcsfontosságú lépés az alkalmazás megbízhatóságának és funkcionalitásának biztosításában. Tavaszi tesztelő beszállítójaként megértem az alapos tesztelés jelentőségét és a fejlesztőknek a Mybatis Mapper interfészek tesztelésekor. Ebben a blogbejegyzésben megosztom néhány bevált gyakorlatot és technikát arról, hogyan lehet hatékonyan tesztelni a Spring Boot Mybatis Mapper interfészeket a Spring Tester segítségével.

A Mybatis Mapper interfészek megértése

A Mybatis egy népszerű perzisztencia keret, amely egyszerűsíti az adatbázis -hozzáférést a Java alkalmazásokban. A Mybatis Mapper interfészek olyan Java interfészek, amelyek meghatározzák az adatbázis -műveletek SQL módszereit. Ezeket az interfészeket arra használják, hogy kölcsönhatásba lépjenek az adatbázissal anélkül, hogy kazánlap kódot kellene írni a JDBC műveletekhez.

A Mybatis Mapper interfészek tesztelésekor gondoskodnunk kell arról, hogy az ezekben az interfészekben meghatározott SQL lekérdezések helyesek legyenek, és visszatérjenek a várt eredményekhez. A Spring Tester kényelmes módszert kínál ezen interfészek tesztelésére a Spring Boot alkalmazás kontextusában.

A tesztelési környezet beállítása

Mielőtt megkezdenénk a tesztelést, be kell állítanunk a tesztelési környezetet. Először győződjön meg róla, hogy a következő függőségek vannak -e apom.xmlHa Maven -t használ:

<függőség> <groupId> org.springframework.boot </groupID> <stifactId> rugó-indító-teszt </stifactId> <Scope> teszt </cope> </függőség> <függőség> <groupid> org.mybatis.spring.boot </grouptId> <artifactId> myBatis-pring-starmy-starmy-starper-se <Scope> Teszt </cope> </fependency>

Ezek a függőségek biztosítják a Spring Boot és a Mybatis szükséges tesztelési segédprogramjait.

Egy egyszerű teszt írása egy Mybatis Mapper interfészhez

Tegyük fel, hogy van egy egyszerű Mybatis Mapper interfészünkFelhasználóEnnek van egy módszere, hogy a felhasználót azonosítóval keresse meg:

import org.apache.ibatis.annotations.mapper; import org.apache.ibatis.annotations.Select; @Mapper public interfész usermapper {@Select ("válassza * a felhasználóktól, ahol id = #{id}") FindUserById (int id) felhasználói; }

A Mapper interfész teszteléséhez tesztosztályt írhatunk a Spring Tester segítségével. Íme egy példa:

import org.junit.jupiter.api.test; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.test.context.springboottest; Import statikus org.junit.jupiter.api.assertions.assertNotnull; @SpringBoOttest nyilvános osztályú USERMAPPertest {@AutOWIRED privát Usermapper Usermapper; @Test public void testfinduserById () {user user = usermapper.finduserById (1); assertNotnull (felhasználó); }}

Ebben a tesztosztályban a@Springboottestkommentár a tavaszi indító alkalmazás kontextusának betöltéséhez. Ezután automatizáljuk aFelhasználóinterfész és írjon egy teszt módszert aFindurbymódszer. A junit 5 -et használjukassertnotnullállítás annak biztosítása érdekében, hogy a visszaküldött felhasználó ne legyen nulla.

Tesztelés teszt adatbázissal

Egy valós világ forgatókönyvében nem akarjuk használni a termelési adatbázist a teszteléshez. Használhatunk egy in - memória adatbázist, például a H2 -t a teszteléshez. Adja hozzá a következő függőségetpom.xml:

<függőség> <groupID> com.h2database </groupID> <sartifactId> h2 </stifactId> <cope> teszt </cope> </ffeendency>

Ezután konfigurálja a teszt -adatbázist aAlkalmazás-teszt.PropertiesFájl:

Spring.DataSource.URL = JDBC: H2: MEM: TestDB Spring.DataSource.DriverClassName = org.h2.driver Spring.DataSource.USERNAME = SA Spring.DataSource.password = jelszó tavaszi.jpa.database-platform = org.HiBernate.Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.H2Dialect.h2Dialect.h2dialect.h2dialect.h2dialect.h2dialect.

Most, amikor a teszteket futtatja, a Spring Boot a H2 in - memória adatbázist fogja használni a termelési adatbázis helyett.

Komplex lekérdezések és tranzakciók tesztelése

Időnként a Mybatis Mapper interfészek komplex lekérdezéseket vagy tranzakciókat tartalmazhatnak. Például egy Mapper interfésznek lehet egy módszer a felhasználó beillesztésére, majd egy másik kapcsolódó rekord frissítésére ugyanabba a tranzakcióba.

Tegyük fel, hogy van egyFelhasználóA felhasználó beillesztésére szolgáló módszerrel:

Lab Colloid Mill MachineLab Colloid Mill Machine

import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.options; @Mapper public interfész usermapper {@insert ("beillesztés a felhasználókba (név, e -mail) értékek ( #{name}, #{e -mail})") @options (useGeneratedKeys = true, keyproperty = "id") int InsertUser (felhasználói felhasználó); }

Ennek a módszernek a teszteléséhez tesztet írhatunk az alábbiak szerint:

import org.junit.jupiter.api.test; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.test.context.springboottest; import org.springframework.transaction.annotation.transactional; Import statikus org.junit.jupiter.api.assertions.assertTrue; @SpringBoOttest @Transactional nyilvános osztályú usermapperInsertTest {@AutOWired privát Usermapper Usermapper; @Test public void testInsertUser () {user user = new user (); user.setName ("John Doe"); user.setemail ("Johndoe@example.com"); int eredmény = usermapper.InsertUser (felhasználó); assertTrue (eredmény> 0); }}

A@TransactionalA kommentár biztosítja, hogy a teszt egy tranzakción belül futjon, és a teszt során végrehajtott változásokat a teszt befejezése után visszahúzzák.

Gúnyolás használata külső függőségekhez

Bizonyos esetekben a Mybatis Mapper interfész függhet a külső szolgáltatásoktól vagy alkatrészektől. Például egy Mapper módszer hívhat egy külső API -t, hogy bizonyos adatot validáljon az adatbázis -művelet végrehajtása előtt. Ilyen esetekben gúnyolódást használhatunk a Mapper interfész elkülönítésére ezekből a külső függőségekből.

Használhatjuk a Mockito -t, amely a Java ökoszisztéma népszerű gúnyolódási kerete. Adja hozzá a következő függőségetpom.xml:

<függőség> <groupId> org.mockito </groupID> <rtifactId> mockito-core </rtifactId> <cope> teszt </cope> </függőség>

Íme egy példa arra, hogyan lehet a Mockito -t használni egy külső szolgáltatás gúnyolására Mapper tesztben:

import org.junit.jupiter.api.test; import org.mockito.mockito; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.test.context.springboottest; import org.springframework.boot.test.mock.mockito.mockbean; Import statikus org.junit.jupiter.api.assertions.assertequals; @SpringBoOttest nyilvános osztályú usermapperWithMockTest {@AutOWIRED privát Usermapper Usermapper; @Mockbean magán externalservice externalservice; @Test Public void TestMapperWithMock () {mockito.when (exteralservice.validateData (mockito.any ()). MajdReturn (true); Felhasználói felhasználó = usermapper.finduserById (1); assertequals ("várt név", user.getName ()); }}

Kapcsolódó termékek

Tavaszi tesztelő beszállítójaként számos magas színvonalú laboratóriumi berendezést kínálunk. Lehet, hogy érdekel a miFüggőleges víz keringő vákuumszivattyú,Laboratóriumi kolloid malomgép, és20 literes kabátos üvegreaktor- Ezeket a termékeket úgy tervezték, hogy megfeleljenek a különféle tudományos kutatások és ipari alkalmazások igényeinek.

Következtetés

A Spring Boot Mybatis Mapper interfészek tesztelése elengedhetetlen az alkalmazás minőségének és megbízhatóságának biztosításához. A Spring Tester használatával könnyen megírhatunk teszteket ezekre az interfészekre a Spring Boot alkalmazás kontextusában. Használhatjuk a memória adatbázisokat a teszteléshez, a tranzakciók kezeléséhez és a gúnyolás felhasználásához a külső függőségek izolálására.

Ha érdekli a tavaszi teszter termékeink vagy a kapcsolódó laboratóriumi berendezések, kérjük, vegye fel velünk a kapcsolatot a további beszerzések és tárgyalásokért. Elkötelezettek vagyunk azért, hogy a legjobb megoldásokat kínáljuk Önnek a tesztelési és kutatási igényekhez.

Referenciák

  • Tavaszi rendszerindító dokumentáció
  • Mybatis dokumentáció
  • Junit 5 dokumentáció
  • Mockito dokumentáció
A szálláslekérdezés elküldése
Emily Carter
Emily Carter
A Henan Beifan Equipment Co., Ltd. dedikált marketing szakembereként a globális piaci jelenlétünk bővítésére összpontosítom. Az innováció és az ügyfelek elkötelezettségének szenvedélyével arra törekszem, hogy olyan hatásos kampányokat hozzon létre, amelyek világszerte rezonálnak az ügyfelekkel.