En la clase 4 se explica como crear un proyecto Maven y en esta clase arranca como si ya lo supiéramos, imagino que estan al revés, aviso por si alguno llega y no entiende nada como me pasó a mi jaja
Bienvenida e Introducción
Paso a paso para testing básico en Java
Introducción a tests en software
Tipos y beneficios de los tests
Preparación del IDE, proyecto y librerías
Instalación de IntelliJ IDEA, creación del Proyecto con Maven y Tests Unitarios
Testing en Java con JUnit para Verificar Contraseñas
Creación de test unitario: lanzar una excepción para alertar sobre un error
Test unitario con JUnit
Organización de tests con JUnit
Test con Mockito para simular un dado
Test con Mockito: simular el uso de una pasarela de pago
Análisis de los tests y mejoras
Reto 1: crear la función isEmpty
TDD
TDD: Definición, Beneficios, Ciclos y Reglas
Ejemplos de TDD: calcular el año bisiesto
Ejemplos de TDD: cálculo de descuentos
Reto 2: Práctica de TDD
Tests en una aplicación
Organización de una aplicación
App de Películas: Test de Negocio
App de Películas: test de búsqueda de películas por su duración
Creación de la base de datos y tests de integración con bases de datos
Test de integración con base de datos: guardar películas y búsqueda de películas individuales
Reto 3: Nuevas opciones de búsqueda
Requerimientos y tests
Test a partir de requerimiento
Reto 4: Búsqueda por varios atributos
Conclusiones
Resumen y conclusiones
Lectura
¡Un saludo, Platzinauta!👋🏻
¡Ups! De momento, esta clase no está disponible en nuestra plataforma, pero sí la tenemos en YouTube.
Para no interrumpir tu aprendizaje te dejamos el video y link para que puedas verla en YouTube.
Pronto estará disponible en Platzi como el resto de clases.
Gracias por tu comprensión y nunca pares de aprender💚
Aportes 54
Preguntas 3
En la clase 4 se explica como crear un proyecto Maven y en esta clase arranca como si ya lo supiéramos, imagino que estan al revés, aviso por si alguno llega y no entiende nada como me pasó a mi jaja
Al final no es necesario tanto if.
package com.platzi.javatests.util;
public class PasswordUtil {
public enum SecurityLevel {
WEAK, MEDIUM, STRONG
}
public static SecurityLevel assessPassword(String password) {
if (password.length() < 8 || password.matches("[a-zA-Z]+")) return SecurityLevel.WEAK;
if (password.matches("[a-zA-Z0-9]+")) return SecurityLevel.MEDIUM;
return SecurityLevel.STRONG;
}
}
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
Para los que se les olvido lo que eran los enums
: https://www.w3schools.com/java/java_enums.asp
Esto motiva a muchos a empezar en platzi.
2 años después y aún se espera que suban la clase.
Si recomiendo bastante que los métodos de los test se definan en CamelCase, ya que así es el estándar en Java y en el mundo laboral.
PasswordUtil.java
package com.platzi.javatests.util;
public class PasswordUtil {
public enum SecurityLevel {
WEAK, MEDIUM, STRONG
}
public static SecurityLevel assessPassword(String password) {
if (password.length() < 8) {
return SecurityLevel.WEAK;
}
if (password.matches("[a-zA-Z]+")) {
return SecurityLevel.WEAK;
}
if (password.matches("[a-zA-Z0-9]+")) {
return SecurityLevel.MEDIUM;
}
return SecurityLevel.STRONG;
}
}
PasswordUtilTest.java
package com.platzi.javatests.util;
import org.junit.Test;
import static com.platzi.javatests.util.PasswordUtil.SecurityLevel.*;
import static org.junit.Assert.assertEquals;
public class PasswordUtilTest {
@Test
public void assessPasswordWeak_whenHasLessThanEightLetters() {
assertEquals(WEAK, PasswordUtil.assessPassword("1234567"));
}
@Test
public void assessPasswordWeak_whenHasOnlyLetters() {
assertEquals(WEAK, PasswordUtil.assessPassword("abcdefgh"));
}
@Test
public void assessPasswordMedium_whenHasLettersAndNumbers() {
assertEquals(MEDIUM, PasswordUtil.assessPassword("abcd1234"));
}
@Test
public void assessPasswordStrong_whenHasLettersNumbersAndSymbols() {
assertEquals(STRONG, PasswordUtil.assessPassword("abcd123#!"));
}
}
Dejo mi resolución
public class PasswordUtil {
public enum SecurityLevel{
WEAK, MEDIUM, STRONG
}
/*
* @return {@link SecurityLevel}
* @param String
* */
public static SecurityLevel assessPassword(String password){
SecurityLevel response = SecurityLevel.WEAK;
/*
* Expresiones regulares
* ^ start-of-string
* ([0-9]) a digit must occur at least once
* ([a-z]) a lower case letter must occur at least once
* ([A-Z]) an upper case letter must occur at least once
* ([@#$%^&+=]) a special character must occur at least once
* (?=\S+$) no whitespace allowed in the entire string
* .{8,} anything, at least eight places though
* $ end of string
* + can be repeated several times
* */
if(password.length() >= 8 && !password.matches("[a-zA-Z]+")){
if(password.matches("[a-zA-Z0-9]+")){
response = SecurityLevel.MEDIUM;
} else{
response = SecurityLevel.STRONG;
}
}
return response;
}
}
El curso de spring enseña como crear proyectos maven
El nombre de las pruebas unitarias también tienen un objetivo y en algunos casos tienen especificación Gherkin (Given Then When). Recomendado el curso de Fundamentos de pruebas de software.
para ver videos de youtube mejor no pago y veo los videos en youtube xd
Interesante pero aun me quedaron muchas dudas, espero se disuelvan segun vayamos avanzando…
Este es el curso Nº 5 que usa expresiones regulares!
Estoy contemplando en tomar el curso de expresiones regulares!.
Muy buena clase!
El video de esta clase no esta disponible 🤯
Super 😃
dejo mi solucion
public static SecurityLevel verifyPasswordLevel(String pass){
//menos de 8 caracteres o solo letras o solo numeros
if (pass.length() < 8 || pass.matches("[a-zA-Z]+") || pass.matches("[0-9]+"))
return SecurityLevel.WEAK;
//si tiene letras y numeros es MEDIUM
if (pass.matches("[a-zA-Z0-9]+"))
return SecurityLevel.MEDIUM;
//si tiene caracter especial es STRONG
return SecurityLevel.STRONG;
}
y mis test
public class PasswordUtilTest {
@Test
public void verifyWeakPassword() {
PasswordUtil.SecurityLevel inputPass = PasswordUtil.verifyPasswordLevel("af34");
assertEquals(WEAK, inputPass);
}
@Test
public void verifyWeakPassword2() {
PasswordUtil.SecurityLevel inputPass = PasswordUtil.verifyPasswordLevel("holasoydiego");
assertEquals(WEAK, inputPass);
}
@Test
public void verifyWeakPassword3() {
PasswordUtil.SecurityLevel inputPass = PasswordUtil.verifyPasswordLevel("1234567898");
assertEquals(WEAK, inputPass);
}
@Test
public void verifyMediumPassword(){
PasswordUtil.SecurityLevel inputPass = PasswordUtil.verifyPasswordLevel("abcd78945");
assertEquals(MEDIUM, inputPass);
}
@Test
public void verifyStrongPassword(){
PasswordUtil.SecurityLevel inputPass = PasswordUtil.verifyPasswordLevel("abcd7#8945");
assertEquals(STRONG, inputPass);
}
}
Aca el profe trabaja con inteligIdea pero se puede con el mejor ide VSC,
Bueno recordad lo útiles que son las REGEX 😄
No se si sera solo mi caso pero al momento que escribo este mensaje el menu de Test Method que te genera este tipo de metodos me aparece con Alt+Insertar
creo que esta debería ser la clase 7 para hacerla mas entendible
Mi método assessPassword(String password) con la comprobación de los caracteres
public static SecurityLevel assessPassword(String password) {
if (password.length() < 8 ||
password.matches("[a-zA-Z]+")
) return SecurityLevel.WEAK;
if (password.matches("[a-zA-Z0-9]+"))
return SecurityLevel.MEDIUM;
if (password.matches("[a-zA-Z0-9!-/]+"))
return SecurityLevel.STRONG;
return null;
}
para los que no les funciona ctrl + enter , pueden usar alt+insert , a mi me funciono.
seria mejor paso por paso como descargar el programa y para que sirve cada funcion.
Pueden descargar el jar y encontrar el snippet de la dependency en la maven central: https://search.maven.org/artifact/junit/junit/4.13.2/jar
Este video se entiende mejor si se revisa más adelante, después de la clase 7.
No me reconoce el securityLevel en la clase porque se podria deber
Para los que aman la terminal, pueden usar este comando para crear su proyecto en maven:
$ mvn archetype:generate -DgroupId=com.mycompany.mypp -DartifactId=password-verifier -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Excelente clase
Si no te sugiere el generar Test Method con alt+Enter, intenten alt+insert
Aún no esta el vídeo de la clase.
Qué buen clase !!!
video de presentacion del profesor y del curso, no esta el video de la clase
Aún no está disponible el vídeo de la clase, actualmente de muestra el de presentación del profesor
Vídeo no disponible.
Rescato lo de la enumeración esta muy bueno.
No se puede ver el video dice que no esta disponible. Los otros videos de Youtube los he podido ver bien
Que paso con el video de esta clase?
Que buen curso, a sacar el máximo provecho.
Señores, no hay vídeo de la clase, solo una presentación del curso desde YouTube :S
Como descargo Javatests?
muy buen profe tranquilo y sabe lo dice … chevere
Debería controlarse también el caso en que pasaran como parámetro un valor null, porque en dicho caso no se estaría cumpliendo con los test.
Que bacan
Excelente demostración
Estupenda clase instructor Ferran, pensaba que las pruebas básicas serían algo más como un mensaje en consola y tomarían más tiempo, pero son alertas las cuales IntellJil las posiciona de una forma cómoda tomando en cuenta todos los elementos de la interfaz.
Muy buena clase, me funciono perfectamente jejeje.
como se instala el intelig ,creo que deberias de instalarlo desde cero?
Okay, quiero dejar aqui este mensaje como constancia de que espero acabar este curso hoy. Si no hay un mensaje en la ultima clase diciendo algo como “I did it!” entonces fallé.
Deséenme suerte
Mi solucion:
PasswordUtil.java
/**
* PasswordUtil
*/
public class PasswordUtil {
public enum SecurityLevel {
WEAK,
MEDIUM,
STRONG
}
public static SecurityLevel assessPassword(String password) {
if (password.length() < 8) {
return SecurityLevel.WEAK;
} else if (password.matches("[a-zA-Z]+")) {
return SecurityLevel.WEAK;
} else if (password.matches("[a-zA-Z0-9]+")) {
return SecurityLevel.MEDIUM;
} else {
return SecurityLevel.STRONG;
}
}
}
PassowordUtilTest.java
import static org.junit.Assert.*;
import static ...PasswordUtil.SecurityLevel.*;
import org.junit.Test;
/**
* PasswordUtilTest
*/
public class PasswordUtilTest {
@Test
public void weak_when_has_less_than_8_letters() {
assertEquals(WEAK, PasswordUtil.assessPassword("1234567"));
}
@Test
public void weak_when_has_only_letters() {
assertEquals(WEAK, PasswordUtil.assessPassword("abcdefg"));
}
@Test
public void medium_when_has_letters_and_numbers() {
assertEquals(MEDIUM, PasswordUtil.assessPassword("abcd1234"));
}
@Test
public void medium_when_has_letters_numbers_and_symbols() {
assertEquals(STRONG, PasswordUtil.assessPassword("abcd1234*!"));
}
}
Alguien puede recomendar una lista de cursos previos para entender bien este curso?
Soy nuevo en platzi y no se bien como orientarme, de igual forma en java.
Assess means: evaluate or estimate the nature, ability, or quality of.
Excelente
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.