xUnit 是一個 Java 單元測試框架,它提供簡潔且有力的斷言和模擬功能,簡化了 Java 函數的測試。安裝 xUnit 依賴項。使用 Assert.assertEquals() 進行斷言。整合 Mockito 進行模擬,建立模擬物件模擬其他類別的行為,適用於測試與外部依賴項互動的函數。在實戰中,它可用於測試複雜函數,例如計算階乘的函數。
用xUnit 單元測試Java 函數
簡介
xUnit 是Java 中常用的單元測試框架。它提供了一組簡潔、有力的斷言和 mocking 功能,使測試 Java 函數變得容易。
安裝xUnit
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency>
使用斷言
import org.junit.Assert; public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); int result = calculator.add(2, 3); // 断言结果应该为 5 Assert.assertEquals(5, result); } }
使用Mocking
Mockito 是一個流行的mocking 庫,可以與xUnit 一起使用。 Mockito 可讓您建立模擬對象,這些物件模擬其他類別或介面的行為。這對於測試與外部依賴項互動的函數非常有用。
import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; public class CustomerServiceTest { @Mock private CustomerRepository customerRepository; @Before public void setUp() { Mockito.when(customerRepository.findById(1)).thenReturn(new Customer("John Doe")); } @Test public void testGetCustomer() { CustomerService customerService = new CustomerService(customerRepository); Customer customer = customerService.getCustomer(1); // 断言获取到的客户名为 "John Doe" Assert.assertEquals("John Doe", customer.getName()); } }
實戰案例
考慮一個計算 factorial 的函數:
public class Factorial { public int calculate(int n) { if (n == 0) { return 1; } else { return n * calculate(n - 1); } } }
單元測試
import org.junit.Assert; public class FactorialTest { @Test public void testCalculate() { Factorial factorial = new Factorial(); // 断言 factorial(5) 应为 120 Assert.assertEquals(120, factorial.calculate(5)); } }
以上是如何用xUnit單元測試Java函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!