Code de test pour évaluer les décorateurs

Comment écrire du code de test pour évaluer les décorateurs Python. S'il vous plaît laissez-moi savoir s'il existe une meilleure façon.

Tester le décorateur lui-même

Avec le décorateur hoge, 1 est ajouté à la valeur de retour.

def hoge(func):
    @functools.wraps(func)
    def wrapper(n):
        return func(n) + 1
    return wrapper

@hoge
def sample(n):
    return n * 2

if __name__ == '__main__':
    assert sample(3) == 7

Le décorateur lui-même peut être évalué comme suit (ʻANY_VALUE` peut être n'importe quoi):

assert hoge(lambda n: 6)(ANY_VALUE) == 7

Tester les décorateurs avec des arguments

Le décorateur hoge suivant ajoute la valeur spécifiée dans l'argument du décorateur à la valeur de retour.

def hoge(m):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(n):
            return func(n) + m
        return wrapper
    return decorator

@hoge(2)
def sample(n):
    return n * 2

if __name__ == '__main__':
    assert sample(2) == 6

Le décorateur lui-même peut être évalué comme suit.

assert hoge(2)(lambda n: 4)(ANY_VALUE) == 6

Recommended Posts

Code de test pour évaluer les décorateurs
Renforcez avec le test de code ⑦
Renforcez avec le test de code ⑨
Renforcez avec le test de code ③
Renforcez avec le test de code ⑤
Renforcez avec le test de code ④
Techniques de test de code?
Renforcez avec le test de code ②
[Mémo] Résumé du code de test
Renforcez avec le test de code ①
Automatisation des tests pour le travail
Renforcez avec le test de code ⑧
Renforcez avec le test de code ⑨
Tutoriel pour faire du développement piloté par les tests (TDD) avec Flask-2 Decorators
Code de test pour vérifier les liens brisés dans la page
Test d'hypothèse pour l'amélioration du produit
Pour se préparer au test G 2020 # 2
Mémo de code personnel Python
Génération automatique du code de test PyCharm
Modèle Python pour Codeforces-test manuel-
[Python] Exemple de code pour la grammaire Python
Python> J'ai créé un code de test pour mon propre fichier externe
Arbre de décision (pour les débutants) -Édition de code-
Extraits de code VS pour les analystes de données
Méthodes de test pour personnaliser le comportement de Pickle
Ecrire le code de test du sélénium en python
Création d'un outil de test AtCoder pour Python
Notes pour écrire du code de type Python
Régression linéaire (pour les débutants) -Édition de code-
Code pour le modèle d'espace d'état auto-organisé (inachevé)
Ridge Return (pour les débutants) -Code Edition-