¿Cuál es la mejor manera de comenzar con las pruebas unitarias en django?

Creo que puede estar confundiendo las pruebas unitarias con las pruebas de integración.

Las pruebas unitarias están destinadas a evaluar las vistas como funciones / invocables de una manera totalmente procesal, es decir: dar una entrada, comparar la salida con el resultado esperado.

si desea simular el comportamiento del usuario, debe hacer la integración, para eso está Selenium.

con respecto al inicio de sesión, la documentación de Django le muestra una forma de iniciar sesión en los usuarios desde las pruebas, pero para esto necesita usuarios en la base de datos y para eso están los accesorios; lo mejor es ejecutar la aplicación con una base de datos vacía, crear los usuarios de las pruebas utilizando su proceso de registro normal y luego volcarlo en un dispositivo (con el comando dumpdata), puede indicarle a sus pruebas que usen ese dispositivo y luego Tendrás tus usuarios para iniciar sesión.

El problema con los accesorios es que deben actualizarse cuando cambian los modelos, por lo que hay algunas aplicaciones que crean datos de prueba sobre la marcha para hacer frente a esto, hay factory_boy y django_factory y tal vez otros.

Después de luchar por entender cómo y qué prueba. Creo que el mejor enfoque es comenzar con la Prueba de unidad (la mayoría de ellos parece estar usando eso).

Los documentos de Django tienen algunas cosas básicas para comenzar con la documentación de Django
Aquí está la charla de prueba de tokens.
Después de estos dos, probablemente debería considerar algunos de los proyectos del mundo real. Para tener una idea de ello, prueba el desarrollo impulsado por Django Unit Testing. Una especie de cosas serias (U sabe el número de banco: P)

Y luego, probablemente, algunos de los repositorios de Mozilla github, o cualquier proyecto de código abierto con casos de prueba.

Así que estoy en el paso 2 después de una lucha nocturna. Espero que les sea útil.

More Interesting

¿Soy yo o hay alguien más que considera que escribir páginas web basadas en componentes es una pérdida de tiempo?

¿Cuál es la mejor manera de aprender el desarrollo web desde cero si uno no tiene la intención de tomar clases de CS en la universidad?

¿Qué complementos de WordPress se pueden usar para crear un sitio web más interactivo?

¿Cuáles son los mayores desafíos que enfrentan los CTO?

¿Cómo podemos proporcionar un fondo y color personalizados a una página web en HTML?

Cómo diseñar un formulario de contacto para que se vea así

¿Cómo actualizo una página HTML en tiempo real tan pronto como se actualiza la base de datos, sin actualizar la página y usar Ajax?

¿Cuándo y por qué se requieren servlets, jsp y restful? ¿Cuál es la alternativa para estos?

¿Cuál es la diferencia entre Node.js y AngularJS?

¿Cuáles son las ventajas de elegir un marco de trabajo frente a escribir su propio código personalizado para que su sitio responda?

¿Por qué mis inclusiones no funcionan en la programación PHP?

Cómo hacer mis propios códigos de colores hexadecimales para HTML

¿Pueden una aplicación de rieles y una API de rieles separada compartir una base de datos?

PHP no requiere un marco para crear sitios web. ¿Por qué C # requiere uno? Además, ¿está utilizando un marco recomendado por la mayoría?

¿Es aconsejable cambiar la funcionalidad (PHP), CSS o complementos y convertirlo en su propio código cuando crea un sitio de red social en WordPress?