visual sobre programacion practicar para funciona evolucion ejercicios como comandos aplicaciones .net unit-testing vb6 tdd richedit

.net - sobre - ¿Hay alguna buena herramienta TDD o recursos para VB6?



programacion visual basic (3)

Sí, sé que estoy muy retrasado, pero lo que tengo aquí es una antigua aplicación de edición VB6, que creo que nadie se actualizará pronto a .NET. Utiliza un par de herramientas DLL de terceros y, como todavía usa el buen control RichEdit, básicamente puedo crear mi propia granja de fallos solo con esta herramienta.

Así que ya es suficiente y estoy tratando de ver si puedo usar TDD para poder comenzar a escribir pruebas unitarias para cada comportamiento / función que necesito corregir, así que tarde o temprano puedo tener un conjunto de pruebas de regresión completo para esta herramienta. E incluso en el futuro, si realizamos la actualización a .NET, creo que la mayoría de las pruebas que he escrito deberían ser útiles para validar el comportamiento correcto y debería ser actualizable a una versión .NET también, supongo.

Un poco de google básico me envía a esta herramienta llamada simplemente VBunit , pero no puedo encontrar suficientes guías, etc. para comenzar y sí, no soy tan competente con VB6 tampoco :(

  1. Entonces, ¿alguien sabe de alguna buena herramienta / recurso para usar TDD para esta aplicación VB6? [Preferiblemente actualizable a .NET más adelante por si acaso.]
  2. ¿O puedo usar ese framework de prueba unitaria para .NET, es decir, NUnit, etc. a través de una solución alternativa?
  3. ¿O hay una forma aún más increíble de hacer esto?

Gracias :)

EDITAR:

Intenté jugar con vbunit pero descubrí que no hay una manera fácil de agregarlo a una aplicación existente o al menos no a mi saber cómo. Así he encontrado esto para jugar también, vb-lite-unit y también esta comunit . Además, hay algunos que dicen que podemos usar NUnit con vb6 pero hay incluso menos recursos sobre eso.


Estoy en la situación en que tenemos una gran aplicación VB6 que está en camino de ser migrada a .NET. La versión migrada está totalmente probada por unidades.

El enfoque que hemos tomado es probar de forma unitaria la aplicación VB6 desde .NET a través de la interoperabilidad COM. La principal ventaja que encontramos hasta ahora es que los desarrolladores de VB6 terminan aprendiendo TDD (y todo lo que implica):

  • Metodología: prueba primero, codifica después ...
  • Arquitectura: SoC, cohesión, SECO, ...
  • Tecnología: marcos de pruebas y burlas, contenedores IoC ...

Esta solución está mejorando enormemente la calidad del código de la versión migrada, ya que entienden cómo arquitecturar cosas de una forma que hace que las pruebas sean más fáciles. Además, existe la posibilidad de utilizar las mismas pruebas en el VB6 y la versión .NET.

No estoy seguro de si esta solución tiene demasiada arquitectura para su problema. Debe evaluar si es aplicable o adecuado en su situación.

Saludos.


VBUnit funcionó bien para mí en un antiguo cliente en un proyecto VB6.


He tenido una experiencia TDD muy fluida usando SimplyVBUnit. Pensé que la muestra con la que venía el código era bastante autoexplicativa.

Su formulario cargado inicialmente al inicio contiene el control. Luego en el sub Form_Load usted:

AddTest New TestDifferentAsserts

TestDifferentAsserts es una clase vb. Se ve algo como esto:

Public Sub TestFloatCompareTolerance() '' we will use the default tolerance of 0.00001 Assert.AreEqual 9#, 9.000001, "Should be equal!" '' The Expected value must be a Double or Single '' for the tolerance to be used in the comparison. Assert.AreEqual 9, 9.000001, "This will fail because we didn''t use a float for the expected value." End Sub

De hecho, mañana vuelvo a cargar vb6 en mi computadora para hackear mi computadora con simplementevbunit.

[EDICION AGREGADA]

Este es mi proyecto Explorer en VB6:

Form1 es donde se encuentra el control simplyvbunit.

El código fuente para este proyecto.

Si tiene controles de terceros, a quién le importa. Envuélvelos con una fachada. Luego crea un stub desde la fachada.

Si necesita ayuda adicional, deje un comentario.