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


Тест исключения (Exception Test)



Download 1,35 Mb.
Pdf ko'rish
bet98/140
Sana15.04.2022
Hajmi1,35 Mb.
#555128
1   ...   94   95   96   97   98   99   100   101   ...   140
Bog'liq
Экстремальное программирование Разработка через тестирование PDFDrive

Тест исключения (Exception Test)
Как можно протестировать ожид аемое исключение? Перехватите
исключение и игнорируйте его, тест д олжен терпеть неуд ачу только в
случае, если исключение не сгенерировано.
Пред положим, что мы пишем код , о существляющий поиск
значения. Если значение не обнаружено, мы хотим сгенерировать
исключение. Тестирование механизма поиска выполняется отно сительно
про сто:
public void testRate() {
exchange.addRate("USD", "GBP", 2);
int rate = exchange.findRate("USD", "GBP");


assertEquals(2, rate);
}
Тестирование исключения может оказаться неочевид ным. Вот как
мы это д елаем:
public void testMissingRate() {
try {
exchange.findRate("USD", "GBP");
fail();
} catch (IllegalArgumentException expected) {
}
}
Если метод findRate() не генерирует исключения, произойд ет
обращение к метод у fail() – это метод xUnit, который д оклад ывает о
том, что тест потерпел неуд ачу. Обратите внимание, что мы
перехватываем 
только 
то 
исключение, 
которое 
д олжно 
быть
сгенерировано метод ом findRate(). Благод аря этому, если буд ет
сгенерировано какое-либо д ругое (неожид анное д ля нас) исключение
(включая сбой метод а assert), мы узнаем об этом.
Все тесты (All Tests)
Как можно запустить все тесты вместе? Созд айте тестовый набор,
включающий в себя все имеющиеся тестовые наборы, – од ин д ля
кажд ого пакета (package) и од ин, объед иняющий в себе все тесты
пакетов д ля всего приложения.
Пред положим, вы д обавили под класс класса TestCase и в этот
под класс вы д обавили тестовый метод . В след ующий раз, когд а буд ут
выполняться все тесты, д обавленный вами тестовый метод также
д олжен быть выполнен. (Во мне опять про снулась привычка
д ействовать в стиле TDD – д олжно быть, вы заметили, что пред ыд ущее
пред ложение – это эскиз теста, который я, наверное, написал бы, если
бы не был занят работой над д анной книгой.) К сожалению, в
большинстве реализаций xUnit, равно как и в большинстве IDE, не
под д ерживается станд артный механизм запуска абсолютно всех тестов,
поэтому в кажд ом пакете необход имо опред елить класс AllTests,


который реализует статический метод suite(), возвращающий объект
класса TestSuite. Вот класс AllTests д ля «д енежного» примера:
public class AllTests {
public static void main(String[] args) {
junit.swingui.TestRunner.run(AllTests.class);
}
public static Test suite() {
TestSuite result = new TestSuite("TFD tests");
result.addTestSuite(MoneyTest.class);
result.addTestSuite(ExchangeTest.class);
result.addTestSuite(IdentityRateTest.class);
return result;
}
}
Вы также д олжны включить в класс AllTests() метод main(),
благод аря чему класс можно буд ет запустить напрямую из IDE или из
команд ной строки.



Download 1,35 Mb.

Do'stlaringiz bilan baham:
1   ...   94   95   96   97   98   99   100   101   ...   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