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



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

TestCaseTest
def testResult(self):
test = WasRun("testMethod")
result = test.run()
assert("1 run, 0 failed" == result.summary())
Начнем с под д ельной реализации:
TestResult
class TestResult:
def summary(self):
return "1 run, 0 failed"
Теперь сд елаем так, чтобы в результате выполнения метод а
TestCase.run() возвращался объект класса TestResult:
TestCase
def run(self):
self.setUp()
method = getattr(self, self.name)
method()
self.tearDown()
return TestResult()
Теперь, когд а все тесты выполнились успешно, можно сд елать
реализацию метод а summary() реальной. Как и раньше, буд ем д вигаться
маленькими шажками. Для начала заменим количество выполненных
тестов константой:
TestResult
def __init__(self):
self.runCount = 1
def summary(self):
return "%d run, 0 failed" % self.runCount
(Оператор % в языке Python является аналогом функции sprintf в
языке C.) Од нако runCount не может быть константой, это д олжна быть


переменная, значение которой вычисляется исход я из количества
выполненных тестов. Мы можем инициализировать эту переменную
значением 0, а затем увеличивать ее на ед иницу при выполнении
очеред ного теста.
TestResult
def __init__(self):
self.runCount = 0
def testStarted(self):
self.runCount = self.runCount + 1
def summary(self):
return "%d run, 0 failed" % self.runCount
Теперь мы д олжны позаботиться о вызове этого нового метод а:
TestCase
def run(self):
result = TestResult()
result.testStarted()
self.setUp()
method = getattr(self, self.name)
method()
self.tearDown()
return result
Мы точно так же могли бы преобразовать константу «0»,
обозначающую количество тестов, потерпевших неуд ачу, в переменную,
как сд елали это с переменной runCount, од нако существующие тесты
этого не требуют. Поэтому напишем новый тест:
TestCaseTest
def testFailedResult(self):
test = WasRun("testBrokenMethod")
result = test.run()
assert("1 run, 1 failed", result.summary)
Зд есь:
WasRun
def testBrokenMethod(self):


raise Exception
Вызов тестового метод а
Вызов метод а setUp перед обращением к метод у
Вызов метод а tearDown по сле обращения к метод у
Метод tearDown д олжен вызываться д аже в случае неуд ачи теста
Выполнение нескольких тестов
Отчет о результатах
Строка журнала в классе WasRun
Отчет о неуд ачных тестах
Мы немед ленно замечаем, что исключение, генерируемое в метод е
WasRun.testBrokenMethod(), не перехватывается. Нам хотело сь бы
перехватить это исключение и в отчете о результатах тестирования
отметить, что тест потерпел неуд ачу. Добавим соответствующий пункт
в список зад ач.
Под вед ем итог. Мы
• разработали под д ельную реализацию и начали поэтапно д елать ее
реальной путем замены констант переменными;
• написали еще од ин тест;
• когд а тест потерпел неуд ачу, написали еще од ин тест меньшего
масштаба, чтобы обеспечить выполнение неуд ачного теста.



Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   55   56   57   58   59   60   61   62   ...   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