En el sistema de inicio de sesión de la conferencia de prensa, se utiliza django para desarrollar el sistema de inicio de sesión de la conferencia de prensa, y
este documento prueba el sistema.
django.prueba
django.test
es un módulo en el marco de Django que proporciona herramientas y clases para escribir y ejecutar pruebas.
django.test
El módulo contiene algunas clases y funciones para realizar pruebas, como por ejemplo:
-
TestCase
: Esta es una clase base para escribir casos de prueba de Django. Heredado deunittest.TestCase
, proporciona algunas funciones y métodos adicionales para lidiar con el entorno de prueba de una aplicación Django. -
SimpleTestCase
: Esta es una clase base de prueba más liviana, adecuada para escenarios de prueba simples sin acceso a bases de datos o redes. -
Client
: Esta es una clase de cliente que simula solicitudes HTTP, utilizada para simular solicitudes de usuarios y verificar los resultados de las respuestas en las pruebas. -
RequestFactory
: Esta es una clase de fábrica para crear objetos de solicitud HTTP, que se utiliza para generar instancias de solicitud HTTP en las pruebas. -
Otras funciones auxiliares y decoradores, como
override_settings
anular temporalmente la configuración de Django durante las pruebas,tag
agregar etiquetas a los casos de prueba, etc.
Al utilizar django.test
módulos, puede escribir pruebas unitarias, pruebas de integración y pruebas funcionales para verificar y garantizar la corrección y estabilidad de las aplicaciones Django.
Aquí hay un código de muestra simple que demuestra cómo django.test
escribir una clase de caso de prueba usando módulos:
from django.test import TestCase
class MyTestCase(TestCase):
def test_my_function(self):
# 编写测试逻辑
result = my_function()
self.assertEqual(result, expected_result)
En resumen, django.test
el módulo proporciona un conjunto de herramientas y clases para escribir y ejecutar pruebas de aplicaciones Django, que pueden ayudar a los desarrolladores a verificar y garantizar la corrección y estabilidad de las aplicaciones.
Probar la vista de índice
import os,django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "guest.settings")
import django
django.setup()
from django.test import TestCase
class IndexPageTest(TestCase):
def test_index_page_renders_index_template(self):
response = self.client.get("/index/")
self.assertEqual(response.status_code,200)
self.assertTemplateUsed(response,'index.html')
La clase de prueba Xu Ya integra TestCase, utiliza la instancia del cliente para solicitar obtener y publicar solicitudes HTTP,
afirmar el código de estado después de obtener la respuesta
y utilizar el método afirmarTemplateUsed para afirmar si la solicitud utiliza la plantilla index.html
Pruebe la vista de inicio de sesión
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "guest.settings")
from django.contrib.auth.models import User
from django.test import TestCase
class LoginActionTest(TestCase):
def setUp(self) -> None:
User.objects.create_user("admin1","[email protected]","admin123456") #创建用户
def test_add_admin(self):
user=User.objects.get(username="admin1")#查询
self.assertEqual(user.username,"admin1")
self.assertEqual(user.email, "[email protected]")
def test_login_action_username_password_null(self):
"""测试密码为空"""
test_data={
'username':'','password':''}
response=self.client.post('/login/',data=test_data) #使用self的client可以对urls进行测试
self.assertEqual(response.status_code,200)
self.assertIn(b"username or password error",response.content)
def test_error_password(self):