[PYTHON] N'est-il pas acceptable d'écrire du code de test?

Cet article "n'a jamais écrit", "n'a pas besoin", "ne comprend pas" le code de test Cet article présente les gens qui disent: «Il y a quelque chose de bon à écrire».

Je ne sais pas comment écrire en premier lieu

Avez-vous appris à écrire du code de test? En parlant de cela, vous faites quelque chose de difficile, non? Je sens qu'il y a un certain nombre de personnes. Tout d'abord, le code de test est fondamentalement ** C'est plutôt boueux! ** **

Quelque chose extrait automatiquement la fonction dans le fichier source, Cela peut aussi être une évaluation de valeur. Mais c ’est difficile, non?

Je pense qu'il y a des gens qui pensent cela. Il fut un temps où je le pensais. (Je pense que vous pouvez le trouver, mais cela coûte probablement de l'argent. Au contraire, vous pouvez obtenir de l'argent)

Pour donner un exemple simple, Une fonction pour faire aboyer un chien en précisant un pays

dog_bark.py


def dog_bark(country):
  if country == 'Japan':
    return u'Bow Wow!'
  elif country == 'USA':
    return u'Bow wow!'
  else:
    raise NotImplementedError

Le code de test est

test_dog_bark.py


from dog_bark import dog_bark

def test_dog_bark():
  assert u'Bow Wow!' == dog_bark('Japan')
  assert u'Bow wow!' == dog_bark('USA')

Ce sera. Le code consiste à exécuter la fonction dog_bark et à la comparer directement avec la chaîne de résultat attendue. Écrivons le code de test pour le dire au monde! Produisons en masse du code comme celui-ci! Cela signifie que. Ce n'est pas particulièrement difficile. L'exécution des tests est, par exemple, Pytest de Python

$ py.test test_dog_bark.py


 Est OK. Même si vous augmentez la fonction de test, il reconnaîtra le test dans le fichier sans autorisation.
 Le fera.
 À propos, n'importe quel framework de test dans n'importe quelle langue a autant de fonctionnalités.
 (Le langage avec compilation demande un peu plus de travail)

## C'est pénible d'écrire un test
 Je comprends comment rédiger un test, mais "après tout, lancez simplement l'application et vérifiez"
 C'est vrai. cependant,

 ――Quand l'application sera-t-elle prête à démarrer?
 ―― Quand pourrez-vous vérifier la fonction dans l'application?
 ―― En supposant que vous pouvez le vérifier dans l'application, chaque fois que vous corrigez le code, vous pouvez vérifier l'application
 Redémarrez-vous, déplacez-vous l'écran, entrez les paramètres manuellement et vérifiez-vous visuellement?

 ** Le deshow le plus simple est de taper une commande de ligne sur la ligne de commande et de laisser le PC le tester pour vous! ?? ** **

 C'est vrai. L'enregistrement dans l'application réelle est beaucoup plus gênant si vous augmentez le nombre de fois.
 Je pense que la revendication de qualité est certainement correcte, mais ici j'ose
 ** Écrivons un test pour profiter de la qualité! ** **
 Insister. Peu importe que vous soyez très conscient lors de la rédaction d'un test. (Coquin)
 Il y a aussi un mot que les programmeurs ont du mal à s'amuser.

 ~~ Qui garantit la qualité du test si vous l'écrivez en premier lieu et l'exactitude du test lui-même ... ~~

 En plus de cela, il peut être considéré comme terminé jusqu'à ce que le test réussisse, donc
 ** Ayez une idée du progrès **
 Parce que c'est assez important.
 ~~ Nous promettons qu'il sera préférable de le jeter en raison des changements de spécifications ~~

## Vous aurez également des compétences en conception
 Même si vous essayez d'écrire un test pendant le développement
 Les fonctions connexes nécessaires ne sont pas implémentées ou les données de base ne sont pas encore disponibles
 Il y a une situation comme celle-là. Voulez-vous attendre que vous le puissiez?

 ** Vous pouvez l'écrire en le divisant en modules ou en utilisant une maquette **

 De plus, le test ainsi rédigé

 ** Un test en mouvement constant indépendant des autres modules et des données de base fluctuantes **
 Ce sera. C'est important.
 Il est facile de voir l'ampleur de l'impact des corrections de bogues et des améliorations.

 Bien sûr, il faut un peu d'apprentissage et d'expérience pour diviser les modules, etc.
 Je pense que le fait que vous en soyez conscient ou non a une grande influence sur l'ensemble du produit.
 (Après tout, l'histoire de la haute conscience)

## En résumé, faisons TDD!
 En résumé
 
 - ** Il est plus facile de vérifier le fonctionnement avec le code de test **
 - ** Le design a l'air bien **

 Ou plutôt, ce sont généralement des TDD.
 ** En premier lieu, il est inutile d'écrire un test sur TDD pour améliorer la qualité **.
 Comme le test reste un effet secondaire, la qualité s'améliorera si vous l'utilisez pour la régression, etc.
 C'est une rénovation.
 Cependant, je me demande personnellement si les chats et la louche sont des TDD, donc pour le moment,
 ** Amusez-vous avec le code de test! ** **
 En résumé.


Recommended Posts

N'est-il pas acceptable d'écrire du code de test?
Écrire du code dans UnitTest une application Web Python
Ecrire le code de test du sélénium en python
Qiita (1) Comment écrire un nom de code
Écrire du code de type python
chmod 600 ← 600 n'est-ce pas?
Je veux écrire en Python! (1) Vérification du format de code
Je veux écrire en Python! (2) Écrivons un test
Écrire du code semblable à Python (dictionnaire)
Renforcez avec le test de code ⑦
Renforcez avec le test de code ⑨
Renforcez avec le test de code ③
Réécrire le code Python2 en Python3 (2to3)
Renforcez avec le test de code ⑤
Renforcez avec le test de code ④
Renforcez avec le test de code ②
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
[Mémo] Résumé du code de test
Renforcez avec le test de code ①
Renforcez avec le test de code ⑧
Renforcez avec le test de code ⑨
Code de test pour vérifier les liens brisés dans la page
Comment rédiger un test de traitement utilisant BigQuery
Comment doi peut-il être utile lorsque vous demandez comment écrire du code?
Si vous écrivez un test piloté par table go en python, il peut être préférable d'utiliser subTest