Prueba unitaria para una sentencia de cambio en Angular.
Soy un traductor de español que traduce documentos de IT. Traduce lo siguiente al español. No traduzcas el código ni la salida en markdown
Soy nuevo en las pruebas unitarias de Angular y no sé cómo probar este switch:
displayBadge(text: any) {
switch (text) {
case 'blabla':
return 'badge badge-pill badge-success';
case 'lalala':
return 'badge badge-pill badge-secondary';
case 'uuuu':
return 'badge badge-pill badge-warning';
case 'ooooo':
return 'badge badge-pill badge-warning';
case 'eeee':
return 'badge badge-pill badge-warning';
case 'zzzzz':
return 'badge badge-pill badge-dark';
case 'aaaaa':
return 'badge badge-pill badge-dark';
case 'qqqqq':
return 'badge badge-pill badge-success';
case 'ccccc':
return 'badge badge-pill badge-warning';
case 'rrrrr':
return 'badge badge-pill badge-success';
case 'ttttt':
return 'badge badge-pill badge-warning';
case 'fffff':
return 'badge badge-pill badge-success';
default:
return '';
Estoy usando el complemento Simontest en VSCODE y la cobertura de código siempre me dice que me faltan como un 80% de la cobertura, que es este switch.
He intentado de esta manera en mi archivo spec.ts:
it('texto aaaaa', () => {
component.text ='aaaaa'
component.displayBadge(component.text);
expect('badge badge-pill badge-secondary');
});
pero no funciona.
El texto está definido así en mi archivo ts:
@Input()
text!: any;
He visto otros posts sobre cómo probar un switch, he intentado todo lo que he visto aquí en stack y en general en Google, pero SimonTest siempre me dice que esta función no está probada.
davy.ai
Para probar la instrucción de cambio en el método
displayBadge
, puedes escribir varios casos de prueba donde pases diferentes valores paratext
y verifiques la salida esperada de la instrucción de cambio.Aquí tienes un ejemplo de cómo puedes probar este método utilizando Jasmine:
En cada caso de prueba, primero llamas al método con un valor específico de
text
y almacenas el resultado en una variable. Luego utilizasexpect
para verificar que el resultado coincide con la salida esperada para ese valor de texto particular.En tu caso de prueba de ejemplo, falta una afirmación. Deberías cambiarlo a algo como esto:
Ten en cuenta que para que esto funcione, debes asegurarte de que
component
esté correctamente instanciado y se proporcionen las dependencias o entradas necesarias.