172 votes

Que signifie "to stub" en programmation ?

Par exemple, qu'est-ce que cela signifie dans cette citation ?

L'intégration avec une API externe est presque une garantie dans toute application web moderne. Pour tester efficacement une telle intégration, vous devez talon le sortir. Un bon talon doit être facile à créer et constamment à jour avec les réponses réelles et actuelles de l'API. Dans cet article, nous décrirons une stratégie de test utilisant des tests d'API. souches pour une API externe.

11 votes

Avez-vous jeté un coup d'œil à la réponse acceptée en Qu'est-ce qu'un "Stub" ? ?

5voto

mattdm Points 181

Cette phrase est presque certainement une analogie avec une phase de la construction d'une maison - le "branchement" de la plomberie. Pendant la construction, alors que les murs sont encore ouverts, la plomberie brute est installée. Cela est nécessaire pour que la construction se poursuive. Ensuite, lorsque tout ce qui l'entoure est suffisamment prêt, on revient et on ajoute les robinets, les toilettes et le véritable produit final. (Voir par exemple Comment installer une dérivation de plomberie ? .)

Lorsque vous "stub out" une fonction en programmation, vous en construisez suffisamment pour pouvoir travailler autour (pour tester ou pour écrire d'autres codes). Ensuite, vous revenez plus tard et vous la remplacez par l'implémentation complète.

3voto

Julias Points 1121

Vous devez également disposer d'un très bon cadre de test pour créer un tel stub. L'un de mes préférés est Mockito Il y a également EasyMock et d'autres... Mais Mockito est génial, vous devriez le lire - un paquet très élégant et puissant.

2voto

Zain Qasmi Points 65

Stubs RPC

  • Fondamentalement, un stub côté client est une procédure qui, pour le client, ressemble à une procédure serveur appelable.
  • Un stub côté serveur ressemble au serveur comme s'il s'agissait d'un client appelant.
  • Le programme client pense qu'il appelle le serveur ; en fait, il appelle le stub client.
  • Le programme serveur pense qu'il est appelé par le client ; en fait, il est appelé par le stub du serveur.
  • Les stubs s'envoient des messages entre eux pour que le RPC se produise.

Source :

2voto

salinger Points 1

"Stubbing-out une fonction signifie que vous écrirez seulement assez pour montrer que la fonction a été appelée, laissant les détails pour plus tard, quand vous aurez plus de temps".

De : SAMS Teach yourself C++, Jesse Liberty et Bradley Jones

2voto

Taosif7 Points 47

On peut dire qu'un talon est un faux substitut de la fonction originale, qui donne une sortie, qui n'est pas accessible pour le moment pour des raisons :

  • Il n'est pas développé pour l'instant
  • Elle n'est pas appelable depuis l'environnement actuel (peut-être testing)

Un talon a :

  • Nombre exact de paramètres
  • Format de sortie exact (pas nécessairement correct)

Pourquoi un talon est utilisé ?
Lorsque la fonction n'est pas accessible dans un environnement tel que les tests, ou lorsque sa mise en œuvre n'est pas disponible.

Ejemplo:
disons que vous voulez tester une fonction dans laquelle il y a un appel réseau. Pendant que vous testez le code, vous ne pouvez pas attendre le résultat d'un appel réseau pour votre test. Vous écrivez donc une sortie fictive de l'appel réseau et vous poursuivez votre test.

TestFunction(){
  // Some things here

  // Some things here

  var result = networkCall(param)

  // something depending on the result
}

Ce networkCall donne, disons, une chaîne de caractères, donc vous devez créer une fonction avec exactement les mêmes paramètres et elle devrait donner une sortie de chaîne de caractères.

String fakeNetworkCall(int param){
  if(param == 1) return "OK";
  else return "NOT OK";
}

Maintenant que vous avez écrit une fausse fonction, utilisez-la comme remplacement dans votre code.

TestFunction(){
  // Some things here

  // Some things here

  var result = fakeNetworkCall(param)

  // something depending on the result
}

Este fakeNetworkCall est un stub.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X