Java:
כתיבת בדיקות
איך לעשות:
מפתחי Java משתמשים בעיקר בשני מסגרות לבדיקות: JUnit ו-TestNG. כאן, נתמקד ב-JUnit, הבחירה הפופולרית יותר לכתיבת בדיקות בשל פשטותה והתפוצה הרחבה שלה.
הבסיס של JUnit
כדי להשתמש ב-JUnit בפרויקט Maven שלך, הוסף את התלות הבאה ל-pom.xml שלך:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.0</version>
<scope>test</scope>
</dependency>בדיקה בסיסית ב-JUnit נראית כך:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3), "2 + 3 אמור להשתוות ל-5");
}
}הרצת בדיקה זו תוכל לעבור, מה שמצביע על כך שהמתודה add פועלת כצפוי, או להיכשל, ולהציג הודעת שגיאה.
מדמה עם Mockito
בתרחישים מהעולם האמיתי, אובייקטים לעיתים תלויים באובייקטים אחרים. Mockito הוא מסגרת מדמה פופולרית שעוזרת ביצירת אובייקטים מדומים למטרות בדיקה.
הוסף את Mockito לפרויקט Maven שלך:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.5.1</version>
<scope>test</scope>
</dependency>שימוש בסיסי עם Mockito:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;
public class UserServiceTest {
@Test
public void testGetUsername() {
// יצירת מדמה ל-UserRepository
UserRepository mockRepository = mock(UserRepository.class);
// הגדרת התנהגות עבור אובייקט המדמה
when(mockRepository.getUsername(1)).thenReturn("john_doe");
UserService userService = new UserService(mockRepository);
assertEquals("john_doe", userService.getUsername(1), "מזהה המשתמש 1 אמור להיות john_doe");
}
}המדמה הזה מאפשר לנו לבדוק את UserService בלי הצורך ב-UserRepository אמיתי, וממקד את הבדיקה בלוגיקה שבתוך UserService עצמו.