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
- Un valor de string que contiene una descripción de la prueba unitaria.
- 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