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, MockitoExtension
bakal 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.
GO TO FULL VERSION