• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 25/04/2022

Allez plus loin avec Pytest

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Compétences évaluées

  • Aller plus loin avec Pytest
  • Question 1

    Un mock...

    • évalue en priorité un objet que nous souhaitons tester.

    • imite le comportement d'un autre objet que nous ne souhaitons pas tester.

    • crée une copie de l’objet testé.

    • teste automatiquement l’ensemble des méthodes d’une classe.

  • Question 2

    Prenons le code source suivant implémenté dans le fichier  main.py  :

    class Book:
    def __init__(self, title):
    self.title = title
    def get_title(self):
    return self.title
    def create_book():
    book = Book("Elmer")
    return book.get_title()

     Et le test suivant :

    import main
    from main import create_book
    class MockResponse:
    @staticmethod
    def get_title():
    return "Naruto"
    def test_create_book(mocker):
    expected_value = "Naruto"
    assert create_book() == expected_value

    Que devez-vous ajouter dans le test avant d’appeler la méthode  create_book  pour simuler la méthode  get_title()  de l’objet  Book  ?

    • mocker.patch("main.Book", return_value = MockResponse())

    • mocker.patch("Book", return_value = MockResponse.get_title())

    • mocker.patch("main", return_value = Book())

    • mocker.patch("main", return_value = MockResponse())

  • Question 3

    Quelle ligne devez-vous écrire pour effectuer une requête  POST  aboutissant à l’URL ci-dessous sur le client de test Django ?

    /home/book/?title=Les_Misérables&author=Victor-Hugo

    • from django.test import Client
      client = Client()
      client.get('/home/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})
    • from django.test import Client
      client = Client()
      client.post('/home/book/', 'title'='Les_Misérables, 'author'='Victor-Hugo')
    • from django.test import Client
      client = Client()
      client.post('/home/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})
    • from django.test import Client
      client = Client()
      client.post('/home/', '/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})