Dardo – Pruebas unitarias

La prueba unitaria es un proceso de prueba de componentes individuales de un software/aplicación por separado, para garantizar que cada componente funcione según lo previsto. 

Proporciona múltiples ventajas tales como:

  • Capacidad para probar componentes individuales sin ejecutar todo el software/aplicación.
  • Identifique errores fácilmente dentro de un componente específico.

Dart proporciona un paquete llamado prueba que le permite al desarrollador realizar pruebas unitarias muy fácilmente. En este artículo, escribiremos algunas pruebas unitarias usando este paquete, demostrando varios casos de uso y resultados.

Configurando el Proyecto:

Dado que estamos usando test, que es un paquete dart externo, se debe crear un proyecto separado para ejecutar el proyecto.

Tenemos que crear un archivo pubspec.yaml y agregar las siguientes líneas al proyecto.

name: DartTesting

dev_dependencies:
  test:

Entonces tenemos que ejecutar el siguiente comando

dart pub get

Esto inicializará un proyecto con el nombre DartTesting y también instalará el paquete de prueba como una dependencia de desarrollo.

A continuación, podemos crear un archivo main.dart que contendrá todo nuestro código e importar allí el paquete de prueba.

import 'package:test/test.dart';

Escribir una función de muestra:

Primero, tenemos que escribir una función simple en la que podamos ejecutar nuestras pruebas. A continuación se proporciona el código para calcular la suma de todos los elementos de una array.

Dart

// Get sum of all elements of an array
int getSumOfArray(List<int> arr) {
  int res = 0;
  for (var i=0; i<arr.length; i++) {
    res += arr[i];
  }
  return res;
}

Escribir una prueba unitaria:

Se puede escribir una prueba unitaria para la función anterior usando la función test() . Se necesitan 2 Argumentos

  1. Un valor de string que contiene una descripción de la prueba unitaria.
  2. Una aserción de prueba usando la función expect() . La función expect() debe proporcionarse con 2 valores:
    • Valor esperado , que el desarrollador proporciona manualmente.
    • Valor real , que se obtiene ejecutando la función en cuestión
    • Si estos valores coinciden, entonces la prueba unitaria es exitosa o, de lo contrario, se considera que está fallando.

A continuación se proporciona el código para una prueba unitaria para la función getSumOfArray() . Dado que los valores esperados y reales coinciden, será una prueba exitosa.

Dart

main() {
    
  // Successful test for sum of array
  test('Get sum of array - success', () {
    int expectedValue = 15;
    int actualValue = getSumOfArray([1, 2, 3, 4, 5]);
    expect(expectedValue, actualValue);
  });
}

Producción

00:00 +0: Get sum of array - success

00:00 +1: All tests passed!

Exited

Manejo de pruebas fallidas:

En este caso, el valor esperado es diferente del valor real, por lo que la prueba fallará.

Dart

main() {
   
  // Unsuccessful test for sum of array
  test('Get sum of array - failure', () {
    int expectedValue = 40;
    int actualValue = getSumOfArray([1, 2, 3, 4, 5]);
    expect(expectedValue, actualValue);
  });
}

Producción

00:00 +0: Get sum of array - failure

00:00 +0 -1: Get sum of array - failure [E]

  Expected: <15>
    Actual: <40>

Publicación traducida automáticamente

Artículo escrito por amlankumarnandy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *