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
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 = titledef get_title(self):return self.titledef create_book():book = Book("Elmer")return book.get_title()Et le test suivant :
import mainfrom main import create_bookclass MockResponse:@staticmethoddef get_title():return "Naruto"def test_create_book(mocker):expected_value = "Naruto"assert create_book() == expected_valueQue devez-vous ajouter dans le test avant d’appeler la méthode
create_book
pour simuler la méthodeget_title()
de l’objetBook
?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 Clientclient = Client()client.get('/home/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})
- from django.test import Clientclient = Client()client.post('/home/book/', 'title'='Les_Misérables, 'author'='Victor-Hugo')
- from django.test import Clientclient = Client()client.post('/home/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})
- from django.test import Clientclient = Client()client.post('/home/', '/book/', {'title': 'Les_Misérables', 'author': 'Victor-Hugo'})