Сценарий:
I wi sh для проверки ряда функций в рамках AbstractClass; здесь мне нужно создать несколько модульных тестов (с разными условиями) для функции, которая генерирует атрибуты экземпляра. Затем я хочу убедиться, что эти атрибуты вычисляются / возвращаются правильно.
Теперь я представляю упрощенный пример:
Пример абстрактного класса:
class ExampleAbstractClass():
def _form_instance_attributes(self,
x,
y):
self.z = self.x + self.y
self.x = x + 10
self.y = y + 20
, который используется в следующем примере кода:
from example_abstract_class import ExampleAbstarctClass as EAC
class ExampleClass(EAC):
def __init__(self):
self.x = 0
self.y = 0
self.z = 0
def main(self):
self._form_instance_attributes(x=5,
y=25)
И unittest следует:
import unittest
from example_abstract_class import ExampleAbstarctClass as EAC
class ExampleTestClass(unittest.TestCase, EAC):
def test_form_instance_attributes(self):
self._form_instance_attributes(x=5,
y=25)
self.assertEqual(self.z, 0)
self.assertEqual(self.x, 15)
self.assertEqual(self.y, 45)
def test_form_instance_attributes(self):
self._form_instance_attributes(x=10,
y=15)
self.assertEqual(self.z, 0)
self.assertEqual(self.x, 20)
self.assertEqual(self.y, 35)
if __name__ == "__main__":
unittest.main()
Пример должен возвращать self.z = None
во всех случаях. Однако это используется в качестве прокси для демонстрации того, что в этом примере я непреднамеренно назначаю атрибуты (или пытаюсь назначить / прочитать атрибуты) ExampleTestClass
.
Вопрос:
Выше выдает ошибку: AttributeError: 'ExampleTestClass' object has no attribute 'x'
. Эта ошибка имеет для меня смысл, поскольку сейчас я назначаю атрибуты ExampleTestClass. Однако я не уверен, как тестировать атрибуты в ExampleAbstractClass? Я пытался создать объект, но это возвращает None
. Любая помощь будет принята с благодарностью.