Comment faire les testes d'intégration avec Django

a marqué ce sujet comme résolu.

Salut,

Ta question est vague. Je pense que si tu te renseignes ici : https://docs.djangoproject.com/ko/1.11/topics/testing/tools/ tu as des outils pour tester ton site web dans sa globalité. Ça se rapproche assez, à mon sens, de ce que tu appelles tests d’intégration. Mais n’étant moi-même pas sûr, je serais ravi qu’on me contredise.

Je n’ai pas de références de livres sous la main. Personnellement je me sers de la documentation officielle, elle est plutôt complète.

Merci pour vos réponse

J’ai déja écrit des testes pour Django mais :-° je ne sais pas encore différencier les testes d’intégration, si vous pouvez me donner un exemple d’un test d’intégration (inscription ou login ou lister des articles…) ça va bien m’éclaircir les idées

+0 -0

Voici ce qui est à mon sens un test d’intégration :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class LoginTestCase(TestCase):
    """Handle login related tests."""
    def setUp(self):
        """Setup the environment for login tests by creating a user in the
        database.
        """
        self.username = 'admin'
        self.password = 'password'
        self.wrong_password = 'wrong_password'

        user = User.objects.create_user(
            self.username, 'admin@fakemail.com', self.password)
        user.save()

        profile = Profile.objects.create(user=user, mangopay_client_id=0)
        profile.save()

    def test_valid_login(self):
        """Test the web application behaviour when some correct credentials
        are provided.

        Valid login query should redirect to the home page.
        """
        c = Client()
        login_http_request = c.post('/login',
                                    {'username': self.username,
                                     'password': self.password})
        self.assertRedirects(login_http_request, '/')
        self.assertEquals(login_http_request.status_code, 302)

Tu vas tester l’interaction des objets entre eux. Contrairement au test unitaire où tu vas tester un objet de manière isolée. Exemple tiré de : http://test-driven-django-development.readthedocs.io/en/latest/05-forms.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def test_valid_data(self):
    form = CommentForm({
        'name': "Turanga Leela",
        'email': "leela@example.com",
        'body': "Hi there",
    }, entry=self.entry)
    self.assertTrue(form.is_valid())
    comment = form.save()
    self.assertEqual(comment.name, "Turanga Leela")
    self.assertEqual(comment.email, "leela@example.com")
    self.assertEqual(comment.body, "Hi there")
    self.assertEqual(comment.entry, self.entry)
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte