Le cadre de tests unitaires JUnit prend en charge les tests basés sur les données, en utilisant des sources de données réutilisables pour exécuter dynamiquement des cas de test. Les étapes comprennent : Créer une source de données de test, telle qu'un fichier CSV. Créez une classe de test et spécifiez la source de données à l'aide de @RunWith(Parameterized.class) et @Parameters. Écrivez des méthodes de test et injectez des données à l'aide de @Test et @Parameter. Utilisez des annotations paramétrées pour parcourir automatiquement les sources de données et injecter des données de test.
Tests basés sur les données à l'aide du cadre de tests unitaires JUnit
Les tests basés sur les données sont une technique de test automatisée qui exécute dynamiquement des cas de test via des sources de données réutilisables. JUnit est un framework de tests unitaires Java largement utilisé qui prend en charge les tests basés sur les données.
Étapes
Tout d'abord, créez une classe ou un fichier texte pour stocker les données de test. Peut utiliser CSV, JSON ou d'autres formats. Par exemple :
// data.csv name,age John,25 Mary,30
Créez une classe de test pour la classe à tester et utilisez l'annotation Paramétrée
pour spécifier le chemin de la source de données : Parameterized
注解指定数据源路径:
@RunWith(Parameterized.class) public class DataDrivenTest { @Parameter public String name; @Parameter(1) public int age; @Parameters public static Iterable<Object[]> data() { return new CsvFileSource(new File("data.csv")); } }
Parameterized
注解将自动遍历数据源中的每一行,并使用 @Parameter
注解将值注入到测试方法中。
使用 @Test
注解编写测试方法,并在其中使用注入的数据:
@Test public void testNameAndAge() { assertEquals("John", name); assertTrue(age == 25); }
实战案例
为了展示数据驱动测试的实际应用,让我们测试一个简单的 User
类,其中包含 name
和 age
字段:
public class User { private String name; private int age; // getters and setters }
@RunWith(Parameterized.class) public class UserTest { @Parameter public String name; @Parameter(1) public int age; @Parameters public static Iterable<Object[]> data() { return new CsvFileSource(new File("data.csv")); } @Test public void testUser() { User user = new User(); user.setName(name); user.setAge(age); assertEquals(name, user.getName()); assertTrue(age == user.getAge()); } }
运行测试后,JUnit 将自动遍历 data.csv
文件中的每一行,并使用这些值运行 testUser()
rrreee
@Parameter
. 🎜@Test
pour écrire une méthode de test et utiliser les données injectées dedans : 🎜rrreee🎜🎜Cas pratique 🎜🎜🎜 Pour montrer les tests basés sur les données en action, testons une simple classe User
avec les champs name
et age
: 🎜rrreeerrreee🎜Exécuter après testing, JUnit parcourra automatiquement chaque ligne du fichier data.csv
et exécutera la méthode testUser()
avec ces valeurs. 🎜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!