KodeGym/Kursus Jawa/3. modul/Tes lanjut karo Mockito

Tes lanjut karo Mockito

tingkat, wulangan
kasedhiya

1.1 Pustaka Mockito

Dina iki kita bakal kenal karo tes lanjut. Luwih khusus, karo perpustakaan Mockito . Aja mikir babagan metu saka bisnis iki.

Kaping pisanan, perpustakaan iki minangka standar ing tes Spring . Sing sejatine minangka standar ing industri pangembangan backend Jawa.

Kapindho, sampeyan kudu nulis tes kanggo kode Spring sampeyan . Siji-sijine cara kanggo ngerti manawa backend sing sampeyan tulis bisa digunakake yaiku nelpon metode API . Lan nindakake kanthi tes kaping 10 luwih gampang tinimbang tanpa tes. Sampeyan bakal weruh dhewe.

Sampeyan bisa nambah perpustakaan Mockito menyang sampeyan pom.xmlnggunakake kode:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-junit-jupiter</artifactId>
    <version>4.2.0</version>
    <scope>test</scope>
</dependency>

Kabeh kode sumber kanggo proyek Mockito bisa ditemokake ing GitHub .

1.2 Obyek moyoki

Dadi apa Mockito iki lan kenapa apik banget?

Ing proses pangembangan lan pangembangan tes, asring ana perlu kanggo nyelehake sawetara "stub" menyang kode tinimbang obyek nyata.

Contone, kode sing dianggo karo database dites lan ngganti soko ana. Iku apik sing sadurunge saben test negara database iki padha (yen ora tes bakal beda). Lan aku pengin dhasar dadi luwih gampang supaya bisa cepet muter maneh negara kasebut.

Utawa, contone, sampeyan lagi nyoba kode sing ngirim SMS migunani. Lan kanggo surat langsung, dheweke nggunakake sawetara SMS Gateway sing dibayar. Iku bakal becik kanggo nyelehake sawetara Gateway virtual kanggo nyoba kode, supaya ora ngirim atusan SMS kanggo wong sing ora bisa dingerteni.

Utawa kode sampeyan njaluk data saka server web liyane sing mung ora kasedhiya ing server test. Utawa sampeyan nulis kode kanggo pembayaran online sing kudu dites 50 kaping, lan mung banjur diijini kanggo digunakake ing saluran financial nyata.

Aku sampeyan ngerti ... Obyek virtual, utawa uga disebut obyek rintisan, iku sawijining bab banget migunani.

Lan ing kene teka kangelan - Jawa wis ngetik statis. Iki tegese kanggo ReadDatabasenemtokake referensi kanggo obyek menyang variabel tinimbang obyek saka jinis VirtualDatabase, sampeyan kudu oleh warisan kelas VirtualDatabasesaka RealDatabase.

Banjur dadi metu sing kelas wis RealDatabaseBunch saka pribadi cara lan variabel sing nyimpen referensi kanggo obyek nyata liyane, lan sampeyan ora bisa nulis rintisan normal ing cara iki. Ing teori iku apik, nanging ing laku iku buntu.

Lan iki teka kanggo ngluwari ( sampeyan bisa macaDynamicProxy ing liyane rinci ), kang muncul maneh ing Jawa 5. Iku ngijini sampeyan kanggo nggawe obyek virtual sing compiler ora keluhan bab.

Objek maya kuwi diarani mock (saka tembung mock - layout). Perpustakaan Mockito bisa njupuk karya karo mock iki kanggo dhuwur unprecedented. Mula, kanthi cara, jeneng perpustakaan.

1.3 @ExtendWith anotasi

Perpustakaan Mockito bisa digunakake kanthi apik karo JUnit, malah bisa dianggep minangka extension.

Ana rong cara kanggo ngaktifake perpustakaan Mockito ing tes unit sampeyan. Cara pisanan yaiku nambah anotasi khusus:

@ExtendWith(MockitoExtension.class)
public class MockitoAnnotationTest {
    ...
}

Cara kapindho yaiku ngaktifake karya kanthi nelpon metode openMocks():

public class MockitoAnnotationTest {
    @BeforeEach
    public void init() {
        MockitoAnnotations.openMocks(this);
   }
}

Paling asring, sampeyan bakal weruh opsi pisanan, nanging kadhangkala migunani kanggo ngerti yen ana sing kapindho.

Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar