En programmation orientée objet, les mocks (simulacres ou mock object) sont des objets simulés qui reproduisent le comportement d'objets réels de manière contrôlée. Un programmeur crée un mock dans le but de tester le comportement d'autres objets, réels, mais liés à un objet inaccessible ou non implémenté. Ce dernier est alors remplacé par un mock.
Le concept a été utilisé pour la première fois lors de la conférence XP 2000, dans un article de Tim Mackinnon, Steve Freeman et Philip Craig intitulé Endo-Testing: Unit Testing with Mock Objects. Le terme lui-même est emprunté au roman Alice au pays des merveilles de Lewis Carroll plus particulièrement de la Fausse Tortue (ou Tortue Fantaisie, en anglais The Mock Turtle) dans la version originale.
Une traduction de l'expression mock object par celle d'objet fantaisie, est proposée par certains. Une définition de l'adjectif mock étant not real but appearing or pretending to be exactly like something, on pourra lui préférer celle d'objet factice (mais on perdrait alors la référence amusante).
Dans un test unitaire, les mocks peuvent simuler le comportement d'objets réels et complexes et sont utiles à ce titre quand ces objets réels sont impossibles à utiliser. On peut citer les cas suivants :
Remplacer un comportement non déterministe (l'heure ou la température ambiante).
Si l'objet a des états difficiles à reproduire (une erreur de réseau par exemple).
Si l'initialisation de l'objet est longue (ex. : création d'une base de données).
Si l'objet n'existe pas ou si son comportement peut encore changer.
S'il est nécessaire d'inclure des attributs et des méthodes uniquement à des fins de test.
Par exemple, un programme d'alarme qui produira une sonnerie à une heure donnée. Pour le tester, le programme devra attendre l'heure prévue afin de vérifier que la sonnerie se produit. Si un mock est utilisé, celui-ci pourra être déréglé en vue de simuler l'heure de déclenchement de la sonnerie.
Un mock a la même interface que l'objet qu'il simule autorisant ainsi l'objet client à ignorer s'il interagit avec un objet réel ou un objet simulé.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Test-Driven Development (TDD), ou développement piloté par les tests en français, est une méthode de développement de logiciel qui consiste à concevoir un logiciel par des itérations successives très courtes (ou petits pas), telles que chaque itération est accomplie en formulant un sous-problème à résoudre sous forme d'un test avant d'écrire le code source correspondant, et où le code est continuellement remanié dans une volonté de simplification. À l'origine, il s'agissait simplement d'écrire les tests avant de coder, et cette méthode s'appelait le Test-First Design.
En programmation informatique, le test unitaire (ou « T.U. », ou « U.T. » en anglais) est une procédure permettant de vérifier le bon fonctionnement d'une partie précise d'un logiciel ou d'une portion d'un programme (appelée « unité » ou « module »). Dans les applications non critiques, l'écriture des tests unitaires a longtemps été considérée comme une tâche secondaire. Cependant, les méthodes Extreme programming (XP) ou Test Driven Development (TDD) ont remis les tests unitaires, appelés « tests du programmeur », au centre de l'activité de programmation.
Une interface définit la frontière de communication entre deux entités, comme des éléments de logiciel, des composants de matériel informatique, ou un utilisateur. Elle se réfère généralement à une image abstraite qu'une entité fournit d'elle-même à l'extérieur. Cela permet de distinguer les méthodes de communication avec l'extérieur et les opérations internes, et autorise à modifier les opérations internes sans affecter la façon dont les entités externes interagissent avec elle, en même temps qu'elle en fournit des abstractions multiples.
Le cours propose d'expérimenter les spécificités du design industriel en confrontant les étudiant.e.s à la création d'un objet. Il s'agit d'un enseignement pratique dont le résultat est un objet fonct
We learn and apply software engineering principles to program projects in Python. Projects cover problems in life sciences, and will be developed over the course of the semester.
Le cours propose d'expérimenter les spécificités du design industriel en confrontant les étudiant-e-s à la création d'un objet. Il s'agit d'un enseignement pratique qui repose sur le développement d'u
Explore les stratégies de test automatisées, y compris la couverture du code et diverses techniques de test, pour assurer un développement logiciel fiable.
In this paper, we present a series of studies on using Rubik's Twist, a type of low-cost twistable artefact, to create haptic proxies for various hand-graspable VR objects. Our pilot studies validated the feasibility and effectiveness of Rubik's-Twist-base ...
The purpose of evaluation procedures for haptic interfaces is to achieve both qualitative and quantitative statements on haptic rendering realism and performance. Since haptics technology is being increasingly used in computer games, surgical simulators, m ...
EPFL2010
Currently microsystems consist of more and more functionalities in even smaller volumes. Components size has then to be reduced as well, coming through micro- and then nanoscale. The industrial equipments dedicated to their fabrication and assembly have co ...