2.1 @anotasi mock

Ana rong cara kanggo nggarap obyek mock ing Mockito. Sing pertama yaiku nggawe obyek virtual kanthi lengkap , sing nomer loro yaiku mbungkus obyek sing wis ana ing bungkus. Ayo dadi miwiti karo pisanan.

Kanggo nggawe obyek virtual kanthi lengkap, sampeyan kudu nulis kode:

ClassName variable name = Mockito.mock(ClassName.class);

Ayo nggawe kelas ArrayList mock minangka conto:

@ExtendWith(MockitoExtension.class)
class MockTest {
    @Test
    public void whenNotUseMockAnnotation_thenCorrect() {
        List mockList = Mockito.mock(ArrayList.class);
        //these methods won't do anything - they are stubs
        mockList.add("one");
        mockList.add("two");
    }
}

Ing conto iki, kita nggawe ArrayList palsu lan nyimpen referensi ing variabel mockList. Cara obyek iki ora nindakake apa-apa.

Miturut cara, kode iki bisa ditulis luwih cendhek, amarga ana anotasi khusus kanggo iki @Mock.

@ExtendWith(MockitoExtension.class)
class MockTest {
    @Mock
    List mockList;

    @Test
    public void whenNotUseMockAnnotation_thenCorrect() {
        //these methods won't do anything - they are stubs
        mockList.add("one");
        mockList.add("two");
    }
}

Ing kasus kapindho, MockitoExtensionbakal nganalisa kode kelas dhewe lan nggawe stubs perlu. Sampeyan ora perlu nelpon cara Mockito.mock(). Siji anotasi lan obyek virtual wis siyap. Kaendahan.

2.2 @Spy anotasi

Jinis obyek penting nomer loro ing Mockito yaiku pembungkus obyek sing wis ana. Dheweke ngidini, ing tangan siji, nggunakake kelas sing wis ana, lan ing tangan liyane, kanggo nyegat telpon menyang kabeh metode lan variabel obyek kasebut: kanggo mbenerake karyane yen perlu. Padha digunakake kaya asring obyek Mock.

Kanggo nggawe pambungkus liwat obyek, sampeyan kudu nulis kode:

ClassName variable name = Mockito.spy(an object);

Conto karo pambungkus ing kelas ArrayList:

@ExtendWith(MockitoExtension.class)
class SpyTest {
    @Test
    public void whenMockAnnotation() {
        List<String> mockList = Mockito.spy(new ArrayList<String>());
        //these methods will work!
        mockList.add("one");
        mockList.add("two");
    }
}

Ing wangun sing paling gampang, telpon menyang obyek pambungkus mung ngarahake telpon menyang obyek asli, referensi sing tetep ana ing njero . Kabeh bakal bisa digunakake kaya obyek asli.

Sampeyan uga bisa nggawe pambungkus nggunakake anotasi - @Spy.

@ExtendWith(MockitoExtension.class)
class SpyTest {
    @Spy
    List mockList = new ArrayList<String>();

    @Test
    public void whenMockAnnotation() {
        // these methods will work!
        mockList.add("one");
        mockList.add("two");
    }
}

Loro conto kode iki padha.