A tesztelői munkakör egyre jobban kezd kiszélesedni, és ezáltal egyre komplexebb és szerte ágazóbb tudással kell rendelkezni ezen a területen is, hogy lépést tartsunk a trendek által generált változásokkal. Így tehát manapság egyre inkább kezd az is elterjedni, hogy a unit test-eket a tesztelők írják, ismervén és értelmezve a kódbázist. Ahhoz, hogy egy szimpla unit test-et elkészítsünk mintaként, én a ChatGPT-t hívtam segítségül, hiszen, ha már van, és használhatónak tűnik, akkor miért ne könnyítsük meg vele a munkánkat. Ebben @crix kollégám volt segítségemre, aki egy esti beszélgetés kapcsán hívta fel a figyelmem arra, hogy erre is igen hasznos lehet a ChatGPT.
Tehát akkor nézzük is meg, hogy honnan indulunk. Megkértem a ChatGPT-t, hogy legyen kedves és készítsen egy buborék rendezést. Íme:
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// swap arr[j] and arr[j+1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
Mi is történik itt? Van egy metódusunk, ami vár egy tömböt, amiben integer típusú értékek vannak. Majd buborék rendező algoritmust felhasználva emelkedő sorrendbe teszi az elemeket a tömbben.
Ez a metódus nem túl bonyolult, ellenben jó példa lehet, hogy miképpen írjunk unit test-eket erre. Ezt is a ChatGPT-re bíztam. Íme:
package com.example.demo;
import org.junit.Test;
import static org.junit.Assert.*;
public class BubbleSortTest {
@Test
public void testBubbleSort1() {
int[] arr1 = {64, 34, 25, 12, 22, 11, 90};
BubbleSort.bubbleSort(arr1);
assertArrayEquals(new int[]{11, 12, 22, 25, 34, 64, 90}, arr1);
}
@Test
public void testBubbleSort2() {
int[] arr2 = {10, 20, 30, 40, 50};
BubbleSort.bubbleSort(arr2);
assertArrayEquals(new int[]{10, 20, 30, 40, 50}, arr2);
}
@Test
public void testBubbleSort3() {
int[] arr3 = {5, 4, 3, 2, 1};
BubbleSort.bubbleSort(arr3);
assertArrayEquals(new int[]{1, 2, 3, 4, 5}, arr3);
}
@Test
public void testBubbleSort4() {
int[] arr4 = {1, 2, 3, 4, 5};
BubbleSort.bubbleSort(arr4);
assertArrayEquals(new int[]{1, 2, 3, 4, 5}, arr4);
}
@Test
public void testBubbleSort5() {
int[] arr5 = {};
BubbleSort.bubbleSort(arr5);
assertArrayEquals(new int[]{}, arr5);
}
}
Mi is történik itt? Minden Test-ben létrehozunk egy tömböt, amit átadunk a rendező algoritmusnak, és mivel mi tudjuk, hogy milyen eredményt várunk el, így azt hasonlítjuk össze azzal, amit a rendezés után kapunk.
--- Mock Server kicsit később ---
- A hozzászóláshoz regisztráció és bejelentkezés szükséges