Pregunta

Estoy usando c # y para las pruebas unitarias y las pruebas de integración por lo general necesito rellenar los campos automáticamente según los atributos.

Digamos que probaremos si podemos escribir y recuperar los datos del usuario en la base de datos.

  • Creo que un objeto de usuario rellena los campos y escribe el usuario en la base de datos
  • Lee el objeto de usuario de la base de datos
  • Marque los campos si lo que escribo es lo mismo que lo que leí

¿Hay algún marco para rellenar al usuario con datos de prueba automáticamente y verificar si dos objetos tienen los mismos valores?

Código de ejemplo puede gustar esto

User user = new User();
AutoPopulator.Populate(user);
user.Save();
¿Fue útil?

Solución

Echa un vistazo a NBuilder . Te permite crear objetos de prueba con datos aleatorios, valores incrementales y cualquier cosa que puedas imaginar. Todo a través de una bonita interfaz fluida.

Otros consejos

Puede que te resulte relevante. Aquí hay una lista de algunos otros marcos a partir de hoy:

Conocido y respetado:

Poco conocido:

Desconocido:

Sí, lo hay. Encontré esto al ver la sesión # 3 de la serie Summer of NHibernate por Stephen Bohlen .

Su compañía, Microdesk , ha desarrollado una utilidad que le permitirá guardar el estado de una base de datos en la construcción del dispositivo de prueba, establezca el estado de la base de datos al inicio de cada prueba y recupere el estado original de la base de datos en la deconstrucción del dispositivo de prueba.

Descargue la utilidad aquí: Microdesk.Utility.UnitTest

Para ver un tutorial sobre cómo usarlo, vea el video de la sesión 3 de Summer of NHibernate.

Fluido NHibernate tiene una función que le brinda todo lo que está en su lista de deseos, excepto la parte de llenado automático:

Enlace: http://wiki.fluentnhibernate.org/Persistence_specification_testing

Sin embargo, dado el C # con los contratos de código, no sería difícil crear objetos válidos de forma automática utilizando la reflexión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top