Ho un decoratore e voglio affermare che certi metodi nel mio codice sono decorati con esso.Come affermare che un metodo è decorato con Python Unittest?
import functools
def decorator(func):
def _check_something(*args, **kwargs):
# some logic in here
return func(*args, **kwargs)
return functools.wraps(func)(_check_something)
class MyClass(object):
@decorator
def my_method(foo, bar):
pass
Come posso affermare con unittest (unitttest2) che ha my_method
@decorator
e nessuno rimosso, e non è stato dimenticato?
fare alcuni controlli che mettono alla prova se la funzione (non è chiamato un "metodo" in Python, btw) ha il comportamento corretto, aumentando le eccezioni corrette ecc. Se lo fa, va tutto bene. –
ha aggiornato l'esempio per avere un metodo reale invece di una semplice funzione del modulo pendente. – Evgeny
Con i test unitari, si verifica solo se la funzione fa la cosa giusta. Il punto è che le persone possono refactoring l'implementazione reale come vogliono, purché non rompere la funzionalità. Quello che stai cercando di fare non ha nulla a che fare con i test unitari. –