У меня есть набор тестов, и я обнаружил, что я копирую / вставляю много кода из класса в класс, поэтому я хочу создать базовый класс, чтобы удалить это.
Чтобы сделать это эффективно, мне нужно сделать функцию тестируемого модуля доступной для базового класса.Кажется, что это должно быть просто сделать, но я обнаружил, что если мой дочерний класс задает глобальную переменную, которая является функцией для тестирования, базовый класс, когда он ее вызывает, вставляет «self» в качестве нулевого параметра,в результате TypeError: FooBar() takes exactly 2 arguments (3 given)
Мой код:
import unittest
import moduleOfFunctionsToTest as uut
class Base_Test_Class( unittest.TestCase ):
def setUp( self ):
# Common test suite setup
return
def runFcn( self ):
return self.uutFcn( "foo", self.bar )
# other common fucntions.
class TheFirstTestClass( Base_Test_Class ):
uutFcn = uut.FooBar
bar = "0"
def test_SomeCode( self ):
self.runFcn
Как мне позвонить self.uutFcn
без вставки self
?Я пытался передать значение через конструктор, но это вызвало другие головные боли (которые мне, возможно, придется пересмотреть, если это правильный путь.)
TIA!