El único método en la clase TransferFunds (Transferencia de fondos), posee un atributo asociado
a él [Test], esto indica que el método es de prueba. Los métodos de prueba deben retornar
siempre void y no recibir parámetros. En nuestro método de prueba hacemos las inicializaciones
usuales de los objetos de prueba necesarios, ejecutamos el método de negocio a ser probado y
comprobamos el estado del objeto de negocio. La clase Assertion define una colección de
métodos usados para comprobar las condiciones posteriores a la ejecución y en nuestro ejemplo
usamos el método AssertEquals para asegurarnos que luego de la transferencia, ambas cuentas
posean los saldos correctos (existen varias sobrecargas a este método, la versión que fue usada en
este ejemplo posee los siguientes parámetros: el primer parámetro es un valor esperadoy el
segundo es el valor almacenado en el objeto).
Compila y ejecuta este ejemplo. Asumamos que compilaste tu clase de prueba como bank.dll.
Ejecuta la GUI de NUnit (el instalador habrá creado un acceso directo en tu escritorio y en la
carpeta Archivos de Programa), luego de haber iniciado el GUI, selecciona FileOpen ,menu
item, desplázate hacia la ubicación de tu archivo bank.dll y selecciónalo en el cuadro de diálogo
“Open”. Cuando la librería bank.dll se haya cargado, verás una estructura de árbol para la prueba
en el panel izquierdo y una colección de paneles de estado a la derecha. Haz click en el botón
Run, la barra de estado y el nodo TransferFunds en el árbol de prueba se tornarán rojos – nuestra
prueba ha fallado. El panel “Errors and Failures” mostrará el siguiente mensaje – “TransferFunds
: expected <250> but was <150>” y el panel de stack trace justo abajo reportará en que lugar en el
código de prueba ocurrió el error- “at bank.AccountTest.TransferFunds() in
C:\nunit\BankSampleTests\AccountTest.cs:line 17”
Ese es un comportamiento esperado, la prueba ha fallado debido a que no hemos implementado el
método TransferFunds aún. Ahora hagámoslo funcionar. No cierres el GUI, vuelve a tu IDE y
corrige el código, cámbialo así:
public void TransferFunds(Account destination, float amount)
{
destination.Deposit(amount);
Withdraw(amount);
}
Ahora recompila tu código y haz click en el botón run en la GUI nuevamente – la barra de estado
y el árbol de pruebas se tornarán verdes. (Nota como el GUI ha recargado el assembly
automáticamente); mantendremos el GUI abierto todo el tiempo y continuaremos trabajando con
nuestro código en el IDE y escribiremos más pruebas.
Ahora añadiremos algo de control de errores al código de Account. Estamos agregando el
requerimiento de saldo mínimo a la cuenta para estar seguros de que los bancos continúen
haciendo su dinero obligando a mantener un saldo mínimo. Añadiremos la propiedad de saldo
mínimo a nuestra clase Account.
private float minimumBalance = 10.00F;
public float MinimumBalance
{
get{ return minimumBalance;}
}
Ahora usaremos una excepción para indicar la falta de fondos:
namespace bank