2008-10-29 12 views
5

¿Es una buena práctica usar el método principal para probar una clase java/.net?¿Utiliza el método principal de clases para la depuración?

lo he visto reccommended en algunos libros de texto, pero a mí me parece que el uso de un marco de pruebas de unidad tendría más sentido ...

El principal método le da un punto de entrada a la clase y puedes probar un aspecto de la funcionalidad de las clases. Podrías adivinar muchos pero no parece tener tanto sentido como usar Junit o Nunit.

Respuesta

2

Una ventaja obvia parece ser que puedes probar la clase en blanco. Es decir, puede probar las partes internas (métodos privados, por ejemplo). No se puede hacer eso con pruebas unitarias, ni querría eso, están principalmente allí para probar la interfaz y el comportamiento desde la perspectiva de los usuarios.

0

El método principal puede ser útil para ciertas situaciones, pero usar un depurador y luego escribir una prueba unitaria (para proporcionar un seguro contra regresiones) es una solución más robusta.

+0

seguramente debe escribir las pruebas de su unidad antes de escribir su código ... Eso es lo que trata el desarrollo impulsado por pruebas: P –

+0

Estoy de acuerdo, pero también podría escribir una prueba unitaria después de descubrir un error que ilustra el error, luego escribe el código para arreglarlo. – tvanfosson

1

Creo que podría ser útil desarrollar pruebas de integración que se invocan desde un método principal, como un corredor de prueba, que prueba suites de pruebas de integración. No haría las pruebas unitarias de esta manera, ya que los marcos de pruebas unitarias ofrecen un mecanismo mucho mejor para hacer esto.

[EDITAR] No estoy sugiriendo que cada clase tenga un método principal estático para pruebas de integración, sino que podría escribir un programa de prueba de integración con un método principal estático que ejecutaría su suite de pruebas de integración.

0

En Java Es aceptado tener múltiples métodos principales y utilizarlas para pruebas embargo .NET no permitir esto, si usted tiene dos platos en el mismo programa obtendrá compiler error CS0017, y le dice a Compile with /main to specify the type that contains the entry point.

Tengo que decir que el modo Java tiene más sentido para mí.

Cuestiones relacionadas