Доступ самостоятельно от декоратора
в setUp() метод unittest я настроил некоторые self переменные, на которые позже ссылаются в реальных тестах. Я также создал декоратора, чтобы сделать некоторые записи. Есть ли способ я могу получить доступ к этим self переменные от декоратора?
для простоты, я отправляю этот код:
def decorator(func):
def _decorator(*args, **kwargs):
# access a from TestSample
func(*args, **kwargs)
return _decorator
class TestSample(unittest.TestCase):
def setUp(self):
self.a = 10
def tearDown(self):
# tear down code
@decorator
def test_a(self):
# testing code goes here
что было бы лучшим способом доступа a (установить в setUp ()) от декоратора?
1 ответ:
Так как вы украшаете метод, и
self- это аргумент метода, ваш декоратор имеет доступ кselfво время выполнения. Очевидно, не во время синтаксического анализа, потому что еще нет объектов, только класс.Итак, вы меняете свой декоратор на:
def decorator(func): def _decorator(self, *args, **kwargs): # access a from TestSample print 'self is %s' % self func(self, *args, **kwargs) return _decorator
Comments