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中文网其他相关文章!