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 web de Java version. La versión version .NET, actualmente en desarrollo (abril de 2005), se encuentra en url [http://www.springframework.net/].

Image

La página de descargas 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
  • añadir al proyecto una referencia al ensamblado [Spring.Core.dll]

8.2. ¿Dónde se encuentra Nunit?

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

Image

Descargue este version e instálelo. La instalación crea una carpeta en la que se encuentra el archivo gráfico de prueba version:

Lo interesante se encuentra en la carpeta [bin]:

Image

Image

La flecha anterior señala la utilidad gráfica de prueba. La instalación también ha añadido nuevos elementos al repositorio de ensamblados de Visual Studio que vamos a descubrir ahora.

Creemos el siguiente proyecto de Visual Studio:

La clase sometida a prueba 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
        ' log
        Console.WriteLine("setup test")
    End Sub

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

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

End Class

Hay varias cosas que hay que tener en cuenta:

  • 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 en [References] en el explorador de soluciones:

Image

El ensamblado [nunit.framework.dll] debe aparecer en la lista si la instalación de [Nunit] se ha realizado correctamente. Basta con hacer doble clic en el ensamblado para añadirlo 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()> designa un método que se va a probar
  • el atributo <Setup()> designa el método que se debe ejecutar antes de cada método probado
  • 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 de dos entités.Il existen muchos otros métodos de 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> designa la carpeta de instalación de [Nunit]. Obtenemos la siguiente interfaz:

Image

Utilicemos el option del menú [File/Open] para cargar el DLL [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 concreto seleccionándolo y solicitando su ejecución mediante [Run]. Solicitemos la ejecución de la clase:

Image

Una prueba superada en 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] de 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-3 son generadas por el método [demo] probado (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