2008-11-21 21 views

Respuesta

4

Nath, El Control Toolkit Silverlight utiliza. ¿Por qué no echar un vistazo a las pruebas unitarias allí?

http://www.codeplex.com/silverlight

+0

Hola Página, Eso fue lo primero que pensé, pero eso parecía ser más un control personalizado, mientras que yo estoy más buscando un solo ejemplo de nivel de aplicación. Cheers, Nath – NikolaiDante

8

He escrito un par de entradas de blog sobre el Marco de pruebas unitarias Silverlight. El primero cubre cómo probar el código asincrónico utilizando el atributo asíncrono y algunas de las funciones más avanzadas del marco. La publicación se puede encontrar en http://jonas.follesoe.no/UnitTestingAsynchronousSilverlightCode.aspx

La segunda publicación trata de organizar sus pruebas utilizando el atributo Etiqueta. Esto le permite tener pruebas de unidad/integración/rendimiento/UI en el mismo conjunto de pruebas, pero solo ejecuta una categoría específica a la vez. La entrada en el blog se puede encontrar en http://jonas.follesoe.no/EfficientTestingInSilverlight2UsingTags.aspx

+0

Bastante bien ... gracias por compartir: o) – NikolaiDante

1

También debe tratar de usar SilverUnit de verdad Silverlight unit testing, es un muy fácil de usar marco, que también le protege de las complejidades del procesamiento de eventos Silverlight.

2

Aquí es mi guía definitiva para las pruebas unitarias en Silverlight 5. Esto guiará a todos los puntos que tiene que hacer, si no tiene ni idea, por dónde empezar. Esta guía trata de probar dentro de su proyecto. Va a no necesita un 2nd odr 3rd proyecto de Silverlight a la prueba unitaria.

0.) Cierre su proyecto de Silverlight.

1.) Descargue el kit de herramientas de Silverlight 5 here e instálelo.

2.) Abra el Explorador de Windows, vaya a C: y después de la búsqueda de estos dos archivos:

Microsoft.Silverlight.Testing.dll

Microsoft.VisualStudio.QualityTools. UnitTesting.Silverlight.dll

Si no los encuentra, algo anda mal.

3.) Registre estas dos DLL en el GAC. Para eso haga lo siguiente:

Abra la consola de Visual Studio como Administrador. Copie cada una de las instrucciones y ejecútelas en la consola:

gacutil/i "C: \ Archivos de programa \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Testing \ Microsoft.Silverlight.Testing.DLL"

gacutil/i "C: \ Archivos de programa \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Prueba \ Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll"

por favor, tenga en cuenta, que las rutas de acceso a los archivos DLL podrían ser diferentes en su equipo. Sólo tienes que escribir la ruta correcta para su máquina.

4. abrir el proyecto Silverlight y se suman los dos archivos DLL desde arriba como una referencia al proyecto de Silverlight No a su proyecto web.

5. Agregue la siguiente clase a su proyecto. No importa dónde lo pongas. Tengo una carpeta adicional para mis pruebas, pero no importa.

using System; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Ink; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using Microsoft.Silverlight.Testing; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace Test 
{ 
[TestClass] 
public class Test_Svc_Login 
{ 
    [TestMethod] 
    public void Always_True() 
    { 
     Assert.IsTrue(true); 
    } 

    [TestMethod] 
    public void Always_False() 
    { 
     Assert.IsTrue(false); 
    } 

    [TestMethod] 
    public void Even_MoreAlways_False() 
    { 
     Assert.IsTrue(false); 
    } 
} 

} 

6. Hit F6, tratar de compilar. Todo debería estar bien en este punto.

7. Busque el archivo "App.xaml.cs" en su proyecto. Dentro de este archivo encontrará la siguiente declaración. Por supuesto, "nueva Gui.MainPage();" será diferente en tu proyecto Solo busca RootVisual.

this.RootVisual = new Gui.MainPage(); 

Reemplace esta declaración con el siguiente bloque de código.

#if DEBUG 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       //You hit F5 ONLY 
       this.RootVisual = new Gui.MainPage(); 
      } 
      else 
      { 
       //You hit CTRL + F5 
       RunUnitTests(); 
      } 
#else 
      //You are in Release Mode. You hit whatever you want. 
      this.RootVisual = new Gui.MainPage(); 
#endif 

Si ahora se añade la siguiente rutina a su clase App.xaml.cs: F6

private void RunUnitTests() 
     { 

#if DEBUG 
      //You hit CTRL + F5 
      var settings = new UnitTestSettings(); 
      settings.TestHarness = new UnitTestHarness(); 
      settings.StartRunImmediately = true; 
      settings.TestAssemblies.Add(Assembly.GetExecutingAssembly()); 
      this.RootVisual = UnitTestSystem.CreateTestPage(settings); 
#endif 
     } 

8. Hit para comprobar si todo está bien.

9. Pulse F5 para ver si todavía puede depurar normalmente. Presiona Ctrl + F5 para iniciar la prueba unitaria.

10. ¡Ya ha terminado! Ahora puede probar la unidad en Silverlight 5.

Tenga en cuenta que las dos DLL del kit de herramientas todavía están en modo "experimental". No hay soporte oficial También tenga en cuenta que se trata de ejecutar las pruebas dentro de su proyecto. Ahora incluso podría ejecutar estas pruebas en una máquina de clientes en modo de lanzamiento. Si quieres hacer eso, tienes que cambiar las instrucciones #de DEBUG, pero creo que ya ves de qué se trata.

Por supuesto, puede cambiar este enfoque a la prueba de unidad en un proyecto adicional.

Happy Coding.

PISTA: Si tiene problemas con System.Core.dll Después de registrar los dos archivos DLL, sólo tiene que utilizar para registrar el gacutil System.Core.dll nuevo.De esta manera:

gacutil/i "C: \ Archivos de programa \ Referencia Asambleas \ Microsoft \ Framework \ Silverlight \ v5.0 \ System.Core.dll"

+0

¡Muchas gracias! Esto es exactamente lo que estaba buscando y funcionó de maravilla. Tuve el problema System.Core que mencionaste, pero volver a registrarte también funcionó. –