Java:
การเขียนการทดสอบ
วิธีการ:
นักพัฒนา Java โดยหลักใช้เฟรมเวิร์กการทดสอบสองตัวคือ: JUnit และ TestNG ที่นี่เราจะเน้นไปที่ JUnit, ตัวเลือกยอดนิยมสำหรับการเขียนการทดสอบเนื่องจากมีความเรียบง่ายและได้รับการนำไปใช้กันอย่างแพร่หลาย
พื้นฐานของ JUnit
เพื่อใช้ JUnit ในโปรเจ็กต์ Maven ของคุณ ให้เพิ่ม dependency ดังต่อไปนี้เข้าไปใน 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), "User ID 1 ควรจะเป็น john_doe");
}
}การม็อกนี้ช่วยให้เราสามารถทดสอบ UserService โดยไม่จำเป็นต้องมี UserRepository จริง, โฟกัสการทดสอบไปที่โลจิกภายใน UserService เอง