Я пытаюсь выяснить, как оформить тестовую функцию таким образом, чтобы информация из декоратора была доступна для setUp. Код выглядит примерно так:
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
stopService()
eraseAllPreferences()
setTestPreferences()
startService()
@setPreference("abc", 5)
def testPreference1(self):
pass
@setPreference("xyz", 5)
def testPreference2(self):
pass
Цель состоит в том, чтобы setUp понимал, что он запускает testPreference1
, и знал, что ему нужно установить предпочтение "ab c" в 5, прежде чем запускать службу ( и аналогично в отношении «xyz» и testPreference2).
Я, конечно, могу просто использовать условное выражение для имени теста (if self._testMethodName == "testPreference1"
), но это не так уж и удобно, поскольку количество тестов растет ( + рефакторинг более подвержен ошибкам). Я надеюсь решить эту проблему в setUp
, а не в реализации run
. У меня также есть
Я использую python3 .6, хотя, если есть креативные решения, зависящие от более новых функций python, я тоже рад узнать об этом.