Экстремальное программирование. Разработка через тестирование



Download 1,35 Mb.
Pdf ko'rish
bet63/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   59   60   61   62   63   64   65   66   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

TestSuite
class TestSuite:
def __init__(self):
self.tests = []
def add(self, test):
self.tests.append(test)
(В языке Python оператор [] созд ает пустую коллекцию.)
Од нако с реализацией метод а run() возникают проблемы. Мы хотим,
чтобы результаты срабатывания всех тестов накапливались в ед ином
объекте класса TestResult. Таким образом, мы можем написать
след ующий код :
TestSuite
def run(self):
result = TestResult()
for test in tests:
test.run(result)
return result
Зд есь оператор цикла «for test in tests» выполняет итерации по всем
элементам по след овательно сти tests, присваивает их по од ному
переменной цикла test и запускает соответствующий тест. Од нако
шаблон «Компоновщик» (Composite) под разумевает, что набор объектов
д олжен облад ать точно таким же интерфейсом, каким облад ает
отд ельный объект. Если мы перед аем параметр метод у TestCase.run(),
значит, мы д олжны перед авать точно такой же параметр метод у
TestSuite.run(). Можно использовать од ну из трех альтернатив.


• Во спользоваться встроенным в язык Python механизмом
параметров со значениями по умолчанию. К сожалению, значение
параметра по умолчанию вычисляется во время компиляции, но не во
время выполнения, а мы не хотим повторно использовать од ин и тот же
объект TestResult.
• Разд елить метод на д ве части – од на созд ает объект TestResult, а
вторая выполняет тест, используя перед анный ей объект TestResult. Я не
могу прид умать хороших имен д ля д вух частей метод а, а это означает,
что д анная стратегия не является самой лучшей.
• Созд авать объекты TestResult в вызывающем код е.
Мы буд ем созд авать объекты TestResult в вызывающем код е. Этот
шаблон называется «Накапливающий параметр» (Collecting Parameter).
TestCaseTest
def testSuite(self):
suite = TestSuite()
suite.add(WasRun("testMethod"))
suite.add(WasRun("testBrokenMethod"))
result = TestResult()
suite.run(result)
assert("2 run, 1 failed" == result.summary())
При использовании д анного под ход а метод run() не возвращает
никакого явного значения:

Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   59   60   61   62   63   64   65   66   ...   140




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish