la continuación comenzó aquí -> JUnit parte I
También quiero mostrarles cómo funciona el método
Assert.fail(String)
: si se llama a este método, la prueba fallará. Conveniente si otros métodos de la clase Assert
no pueden verificar por nosotros. Digamos que necesitamos prohibir la aceptación new String(“”)
. Intentemos hacer esto en el constructor y deshabilitar el paso name = “” || null, age = 0; Sex = null
. Vamos... Agregué campos adicionales para probar.
private User user;
private User user1;
private User user2;
private User userNotAdd;
private User userNotAdd1;
y cambió el métodosetUp()
@Before
public void setUp() throws Exception {
user = new User("Eugenio", 35, Sex.MALE);
user1 = new User("Puerto pequeño", 34, Sex.FEMALE);
user2 = new User("alina", 7, Sex.FEMALE);
userNotAdd = new User("", 0, null);
userNotAdd1 = new User(null, 0, null);
}
y agregó tres métodos de prueba
@Test
public void newUser_EMPTY_NAME() {
for (User user : User.getAllUsers()){
if (user.getName() != null && user.getName().isEmpty()) {
Assert.fail("Попытка создания пользователя с пустым именем");
}
}
}
@Test
public void newUser_AGE_ZERO() {
for (User user : User.getAllUsers()) {
if (user.getAge() <= 0) {
Assert.fail("Попытка создания пользователя c не допустимым возрастом");
}
}
}
@Test
public void newUser_SEX_NO_NULL() {
for (User user : User.getAllUsers()) {
if (user.getSex() == null) {
Assert.fail("Попытка создания пользователя с указанием пола = null");
}
}
}
En las pruebas, revisamos la lista de usuarios agregados y vemos si hay datos no válidos. Ejecutamos las pruebas de forma masiva y vemos la siguiente imagen... Puede ver que nuestras pruebas para el constructor están fallidas y también se detectaron un par de pruebas más. Ahora necesitamos cambiar el constructor para que no agregue un usuario con parámetros no válidos a la lista de usuarios, hagámoslo así:
public User(String name, int age, Sex sex) {
if (name != null && !name.isEmpty() && age > 0 && sex != null){
this.name = name;
this.age = age;
this.sex = sex;
if (!hasUser()) {
countId++;
this.id = countId;
allUsers.put(id, this);
}
}
}
Ejecutamos nuestras pruebas y vemos que todo está hermoso. En resumen, JUnit es una excelente herramienta para cubrir su código con pruebas. JUnit funcionará aún mejor junto con Maven . Al construir el proyecto, Maven definitivamente ejecutará todas las pruebas y luego construirá nuestro proyecto terminado, pero si las pruebas fallan, el proyecto no se construirá y sabremos las razones. y será más fácil determinar dónde exactamente se produjo la avería. La segunda ventaja de JUnit es el caso del Refactoring , las pruebas de JUnit nos ayudarán a asegurar que la lógica de nuestro programa no se rompa. Y en grandes proyectos la vida no es posible sin un sistema de pruebas automático, aunque puede ser posible, pero tu proyecto se moverá a la velocidad de un caracol… o algo así… Si cubrimos bien nuestro código con pruebas , entonces podemos estar seguros de que nuestro cliente, nuestro producto, funcionará muy bien. P/D ¡¡¡Expreso mi profundo agradecimiento a Victor Sergeev!!! Aquí tenéis enlaces a la videolección en la que nos enseñó:
¡¡¡Gracias por su atención!!! ¡¡¡Que tengas buen humor!!! ¡¡¡Y que Dios te salve del código hindú!!! ...además, si alguien está interesado en profundizar en el código fuente del artículo... venga a llamar... Compartiré el comienzo aquí: JUnit parte I
GO TO FULL VERSION