Skip to content

8. Anexos

8.1. ¿Dónde encontrar Spring?

El sitio web principal de Spring es [http://www.springframework.org/]. Es el sitio de la versión Java. La versión .NET, actualmente en desarrollo (abril de 2005), se encuentra en la URL [http://www.springframework.net/].

Image

El sitio de descarga se encuentra en [SourceForge]:

Image

Una vez descargado el archivo zip anterior, descomprímelo:

Image

En este documento, solo hemos utilizado el contenido de la carpeta [bin]:

Image

En un proyecto de Visual Studio que utilice Spring, hay que hacer sistemáticamente dos cosas:

  • colocar los archivos anteriores en la carpeta [bin] del proyecto
  • agregar al proyecto una referencia al ensamblado [Spring.Core.dll]

8.2. ¿Dónde se puede encontrar NUnit?

El sitio web principal de Nunit es [http://www.nunit.org/]. La versión disponible en abril de 2005 es la 2.2.0:

Image

Descarga esta versión e instálala. La instalación crea una carpeta donde encontrarás la versión gráfica de prueba:

Lo interesante se encuentra en la carpeta [bin]:

Image

Image

La flecha de arriba señala la utilidad gráfica de prueba. La instalación también ha agregado nuevos elementos al repositorio de ensambles de Visual Studio que vamos a explorar ahora.

Creemos el siguiente proyecto de Visual Studio:

La clase que se está probando se encuentra en [Personne.vb]:

Image

Public Class Personne

     ' campos privados
    Private _nom As String
    Private _age As Integer

     ' constructor por defecto
    Public Sub New()
    End Sub

     ' propiedades asociadas a los campos privados
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

     ' cadena de identidad
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

     ' método init
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

     ' método close
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

La clase de prueba se encuentra en [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

     ' objeto probado
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' se crea una instancia de Persona
        personne1 = New Personne
         ' registro
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' registro en pantalla
        Console.WriteLine("début test")
         ' inicialización de persona1
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' pruebas
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' registro de pantalla
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' seguimiento
        Console.WriteLine("teardown test")
    End Sub

End Class

Hay varios puntos a destacar:

  • Los métodos cuentan con atributos como <Setup()>, <TearDown()>, ...
  • Para que estos atributos sean reconocidos, es necesario que:
    • el proyecto haga referencia al ensamblado [nunit.framework.dll]
    • la clase de prueba importe el espacio de nombres [NUnit.Framework]

La referencia se obtiene haciendo clic con el botón derecho sobre [References] en el explorador de soluciones:

Image

El ensamblado [nunit.framework.dll] debe aparecer en la lista si la instalación de [Nunit] se realizó correctamente. Solo hay que hacer doble clic en el ensamblado para agregarlo al proyecto:

Image

Una vez hecho esto, la clase de prueba [NunitTestPersonne] debe importar el espacio de nombres [NUnit.Framework]:

Imports NUnit.Framework

A continuación, deben reconocerse los atributos de la clase de prueba [NunitTestPersonne].

  • El atributo <Test()> indica un método que se debe probar
  • el atributo <Setup()> designa el método que se debe ejecutar antes de cada método de prueba
  • el atributo <TearDown()> designa el método que se debe ejecutar después de cada método probado
  • el método Assert.AreEqual permite comprobar la igualdad entre dos entités.Il existen muchos otros métodos del tipo Assert.xx.
  • La utilidad NUnit detiene la ejecución de un método probado tan pronto como falla un método [Assert] y muestra un mensaje de error. De lo contrario, muestra un mensaje de éxito.

Configuremos nuestro proyecto para que genere un DLL:

Image

El DLL generado se llamará [nunit-demos-1.dll] y se colocará por defecto en la carpeta [bin] del proyecto. Generemos nuestro proyecto. Obtenemos en la carpeta [bin]:

Image

Ahora ejecutemos la utilidad de prueba gráfica Nunit. Recordemos que se encuentra en <Nunit>\bin y que se llama [nunit-gui.exe]. <Nunit> se refiere a la carpeta de instalación de [Nunit]. Aparece la siguiente interfaz:

Image

Usemos la opción de menú [File/Open] para cargar el DLL y el [nunit-demos-1.dll] de nuestro proyecto:

Image

[Nunit] es capaz de detectar automáticamente las clases de prueba que se encuentran en el archivo DLL cargado. En este caso, encuentra la clase [NunitTestPersonne]. A continuación, muestra todos los métodos de la clase que tienen el atributo <Test()>. El botón [Run] permite ejecutar las pruebas en el objeto seleccionado. Si este es la clase [NunitTestPersonne], se prueban todos los métodos mostrados. Se puede solicitar la prueba de un método específico seleccionándolo y solicitando su ejecución mediante [Run]. Solicitemos la ejecución de la clase:

Image

Una prueba exitosa de un método se indica con un punto verde junto al método en la ventana de la izquierda. Una prueba fallida se indica con un punto rojo.

La ventana [Console.Out], a la derecha, muestra las pantallas generadas por los métodos probados. Aquí, hemos querido seguir el desarrollo de una prueba:

1
2
3
4
setup test
début test
fin test
teardown test
  • la línea 1 muestra que el método de atributo <Setup()> se ejecuta antes de la prueba
  • las líneas 2 y 3 son generadas por el método [demo] que se está probando (véase el código más arriba)
  • la línea 4 muestra que el método de atributo <TearDown()> se ejecuta después de la prueba