Eu gostaria de simular solicitações para minhas visualizações no Django quando estou escrevendo testes. Isso é principalmente para testar os formulários. Aqui está um snippet de uma solicitação de teste simples:
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
self.assertEqual(response.status_code, 200) # we get our page back with an error
A página sempre retorna uma resposta de 200, haja ou não um erro de formulário. Como posso verificar se meu formulário falhou e se o campo específico ( soemthing
) apresentou um erro?
python
django
django-testing
Mridang Agarwalla
fonte
fonte
self.assertEquals(form.errors['recipient'], [u"That recipient isn't valid"])
self.assertEqual(form.is_valid(), True)
poderia ser simplificado:self.assertTrue(form.is_valid())
https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError
Onde "formulário" é o nome da variável de contexto do seu formulário, "algo" é o nome do campo e "Este campo é obrigatório". é o texto exato do erro de validação esperado.
fonte
self.client.force_login(self.user)
como primeira linha no método de teste.A resposta original de 2011 foi
Mas vejo agora (2018) que há uma multidão de afirmações aplicáveis disponíveis :
Faça sua escolha.
fonte