xUnit est un framework de tests unitaires Java qui fournit des fonctions d'assertion et de moquerie concises et puissantes pour simplifier le test des fonctions Java. Installez les dépendances xUnit. Utilisez Assert.assertEquals() pour affirmer. Intégrez Mockito pour la simulation et créez des objets fictifs pour simuler le comportement d'autres classes. Il convient pour tester des fonctions qui interagissent avec des dépendances externes. En pratique, il peut être utilisé pour tester des fonctions complexes, telles que des fonctions qui calculent des factorielles.
Tests unitaires des fonctions Java avec xUnit
Introduction
xUnit est un framework de tests unitaires couramment utilisé en Java. Il fournit un ensemble concis et puissant d'assertions et de fonctionnalités moqueuses qui facilitent le test des fonctions Java.
Installation de xUnit
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency>
Utilisation d'assertions
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); } }
Utilisation de Mocking
Mockito est une bibliothèque moqueuse populaire qui peut être utilisée avec xUnit. Mockito vous permet de créer des objets fictifs qui simulent le comportement d'autres classes ou interfaces. Ceci est utile pour tester les fonctions qui interagissent avec des dépendances externes.
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()); } }
Cas pratique
Considérons une fonction qui calcule factorielle :
public class Factorial { public int calculate(int n) { if (n == 0) { return 1; } else { return n * calculate(n - 1); } } }
Test unitaire
import org.junit.Assert; public class FactorialTest { @Test public void testCalculate() { Factorial factorial = new Factorial(); // 断言 factorial(5) 应为 120 Assert.assertEquals(120, factorial.calculate(5)); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!