Desde sus comienzos este proyecto ha implementado todas las características que Nunit y csUnit, pero con la extensibilidad que ellos no tienen.
Antes de empezar deberías tener instalado lo siguiente en tu computador:
- Framework .Net en sus sabores 1.1 o 2.0 (la versión 2008 aun no la tengo instalada, asi que no puedo hacer comentarios si mbunit trabaja o no sobre esta ultima versión del framework)
- La actual versión de Mbunit, la cual puedes descargar desde su sitio.
- TestDriven. Este es un complemento a Visual Studio que aunque no es necesario, es realmente útil para poder correr nuestras pruebas de unidad dentro del Visual Studio.
Y? ya los instalaste?. Bueno, ahora prosigamos.
Escribiendo nuestros primeros tests
Tal cual como dice el el manual de mbunit: escribir test no es para nada complicado es un simple grupo de Fixtures, tests y asserts.
- Assert: Corresponde a una comprobación. Por ejemplo, comprobar que un valor es verdadero, que un número es mayor que otro, que un objeto es nulo, etc.
- Un Test: Es una colección de assert que intentar comprobar que una seria de acciones de tu código de producción están correctas o hacen lo que esperas.
- Un Fixture es una colección de tests que por lo general están relacionados en una única clase.
Dentro de Mbunit exiten mas términos que poco a poco iré comentando, pero por el momento solo utilizare lo que arriba describí.
Entonces para comenzar escribiré algunos tests para la una típica clases que ustedes ya conocen, la pila.
Public Class Stack
Private elements As New ArrayList
Get
Return (elements.Count = 0)
End Get
End Property
elements.Insert(0, element)
End Sub
Public Function Pop() As Object
Dim topelement As Object = Top()
elements.RemoveAt(0)
Return topelement
End Function
Public Function Top() As Object
If IsEmpty Then
Throw New InvalidOperationException("Stack is Empty")
End If
Return elements(0)
End Function
End Class
y justo con la pila esta su compañero inseparable la StackTest
Imports MbUnit.Framework
Imports MiLibreria
Public Class StackTest
Public Sub IsEmptyTest()
Dim myStack As New Stack
Assert.IsTrue(myStack.IsEmpty)
End Sub
Public Sub PushTest()
Assert.IsTrue(myStack.IsEmpty)
myStack.Push(New Object)
myStack.Push(New Object)
Assert.IsFalse(myStack.IsEmpty)
End Sub
Public Sub PopTest()
Dim myStack As New Stack
Assert.IsTrue(myStack.IsEmpty)
myStack.Push(New Object)
myStack.Pop()
Assert.IsTrue(myStack.IsEmpty)
End Sub
Public Sub Top()
Assert.IsTrue(myStack.IsEmpty)
myStack.Push(New Object)
myStack.Pop()
Assert.IsTrue(myStack.IsEmpty)
End Sub
End Class
Creo que no hay necesidad de explicar el código de la clase stack, pero si lo es para la clase stacktest. Básicamente esta clase contiene 4 métodos, donde cada uno de ellos prueba o revisa un método en particular de la clase stack (push, pop, isempty, top) . Como pueden ver en la clase cada método es etiquetado con
Junto con la etiqueta
Y...¿Como configuras tu solución?
Para este post, he creado una solución con 3 proyectos, donde el proyecto de test contiene una referencia al proyecto donde se encuentra el clase stack junto con una referencia a MbUnit.Framework.dll ( que para mi instalación quedo en C:\Archivos de programa\MbUnit).Las referencias quedan como ves en la próxima imagen.
Y... ¿Como puedes ver como corren los tests?
Respuesta: Facil, para poder lograr esto tienes tres opciones: correr un tests en una consola, una interfaz grafica que te entrega Mbunit y por ultimo, pero no menos importante, con TestDriven.
Para el caso de nuestro ejemplo, lo ejecutaremos por medio de la consola (utilizando el comando MBunit.Cons.exe TestsMilibreria.dll )
Bueno, eso ha sido todo por hoy :D. Espero postear muchas otras cosas de Mbunit.
1 comentario:
Lo probaré, recientemente conocí esta herramienta en una charla del code camp 2009 Nicolás Páez fue quien dio la charla, fue la que mas me gustó y estoy investigando como implementar todo esto de a poco
Publicar un comentario