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
עצמו.