SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Модульные тесты

    нахрена?
Преимущества использования

Поощрение изменений
Я могу спокойно заниматься рефакторингом и
быть уверенным, что все будет работать как и
прежде

Возможность тестирования приложения по
частям
Мне не нужно собирать полностью рабочую
систему для проверки работоспособности одного
компонента
Преимущества использования

Грамотный интерфейс модулей
Когда я начинаю создавать тест до написания
основного кода, я могу быть уверен, что модулем
будет удобно пользоваться

my $object = local::Factory::Some::DB::Object->read({id
=> 5})->[0];
local::Factory::Some::DB::Object->update({ id => $var-
>id, name => 'new_name'})

Такого кода у вас точно не будет!
Преимущества использования

Уверенность в себе

Я могу быть уверенным, что мой старый код, которым уже
никто не занимается работает как и прежде

Дадим отдохнуть QA
Мы будем отлавливать множество багов ещё на этапе
разработки. До QA дойдут только лучшие из наших багов.
Чем нам поможет Perl?

Test::More

расскажу о функциях...

use_ok('Some::Module');
ok( 1, 'all is ok' );
ok( 0, 'error' )
is( 'some data', 'some data', 'string are equal' );
like( 'some data', qr/some/, 'this will fail' );
is_deeply( { a=>1, b => 2 },{ a => 1, b => 2});
pass;
fail;

perldoc Test::More
Пример теста

#!/usr/bin/env perl
use Test::More tests => 10;
ok( 1 < 2, '1 < 2' );
SKIP: {
   skip 'We need to have 5.10 to use this', 1 if $] < 5.010;
   use feature qw(switch say);
   ok( say('some output'), 'say' );
};
isnt( $^O, 'windows' );
foreach ( 4..10 ) {
   rand(2) ? pass : fail;
}
Некоторые полезные модули

1. Test::Pod::Coverage - проходит только если для каждого
   метода описана Pod - документация
2. Test::Exception - если у вас используются исключения
3. Devel::Cover - показывает, какие строки вашего кода
   выполняются при тестировании (http://gugu.static.dev.
   rambler.ru/cover_db/coverage.html)
4. Test::Perl::Critic - находит типичные ошибки
   программистов
А что с Web-ом?

Как нам тестировать сайт?
WWW::Mechanize

Эмуляция браузера.
  можем ходить по ссылкам
  заполнять и отправлять формы
Test::WWW::Mechanize

Класс для тестирования веб-приложений. Содержит в себе
кучу полезных методов.

На нем мы остановимся поподробней.
Методы Test::WWW::Mecha

 get_ok( 'path' ) - успех, если GET-запрос к path
 завершился успешно
 submit_form_ok( { form_number => 1, fields=> $data} ) -
 сабмитит первую форму на странице. успех, если
 запрос завершился успешно
 title_is( 'some title' ) - заголовок страницы должен быть
 quot;some titlequot;
 content_contains( 'some content' )
 follow_link_ok( text => 'Удалить' ) - переходит по ссылке с
 этим именем
Маленький пример

#!/usr/bin/env perl
use Test::More tests => 5;
use Test::WWW::Mechanize;

my $mech = Test::WWW::Mechanize->new;
$mech->get_ok( $page );
$mech->base_is( 'http://petdance.com/', 'Proper <BASE
HREF>' );
$mech->title_is( quot;Invoice Statusquot;, quot;Make sure we're on the
invoice pagequot; );
$mech->content_contains( quot;Andy Lesterquot;, quot;My name
somewherequot; );
$mech->content_like( qr/(cpan|perl).org/, quot;Link to perl.org or
CPANquot; );
И напоследок

Никакие unit-тесты не заменят вам:
   отдел тестирования
   качественный код
   и мозги

Они все лишь немного упростят вам жизнь!

Más contenido relacionado

La actualidad más candente

письмо
письмописьмо
письмоyacrawler
 
俄罗斯Gost标准,进出口购买商品目录№RG 4351
俄罗斯Gost标准,进出口购买商品目录№RG 4351俄罗斯Gost标准,进出口购买商品目录№RG 4351
俄罗斯Gost标准,进出口购买商品目录№RG 4351Turkmenistan Laws
 
Java For Digitally Signing Documents In Web Book - Svetlin Nakov
Java For Digitally Signing Documents In Web Book - Svetlin NakovJava For Digitally Signing Documents In Web Book - Svetlin Nakov
Java For Digitally Signing Documents In Web Book - Svetlin NakovSvetlin Nakov
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661Turkmenistan Laws
 
Розробка уроку з англійської мови.
Розробка  уроку  з англійської мови.Розробка  уроку  з англійської мови.
Розробка уроку з англійської мови.ssuser672c3e
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486Turkmenistan Laws
 
норма санпин
норма санпиннорма санпин
норма санпинhelen-66
 
俄罗斯Gost标准,进出口购买商品目录№RG 3783
俄罗斯Gost标准,进出口购买商品目录№RG 3783俄罗斯Gost标准,进出口购买商品目录№RG 3783
俄罗斯Gost标准,进出口购买商品目录№RG 3783Turkmenistan Laws
 
俄罗斯Gost标准,进出口购买商品目录№RG 3762
俄罗斯Gost标准,进出口购买商品目录№RG 3762俄罗斯Gost标准,进出口购买商品目录№RG 3762
俄罗斯Gost标准,进出口购买商品目录№RG 3762Turkmenistan Laws
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложенийSQALab
 
俄罗斯Gost标准,进出口购买商品目录№RG 3452
俄罗斯Gost标准,进出口购买商品目录№RG 3452俄罗斯Gost标准,进出口购买商品目录№RG 3452
俄罗斯Gost标准,进出口购买商品目录№RG 3452Turkmenistan Laws
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146Turkmenistan Laws
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389Azerbaijan Laws
 

La actualidad más candente (14)

письмо
письмописьмо
письмо
 
俄罗斯Gost标准,进出口购买商品目录№RG 4351
俄罗斯Gost标准,进出口购买商品目录№RG 4351俄罗斯Gost标准,进出口购买商品目录№RG 4351
俄罗斯Gost标准,进出口购买商品目录№RG 4351
 
Java For Digitally Signing Documents In Web Book - Svetlin Nakov
Java For Digitally Signing Documents In Web Book - Svetlin NakovJava For Digitally Signing Documents In Web Book - Svetlin Nakov
Java For Digitally Signing Documents In Web Book - Svetlin Nakov
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 2661
 
Розробка уроку з англійської мови.
Розробка  уроку  з англійської мови.Розробка  уроку  з англійської мови.
Розробка уроку з англійської мови.
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1486
 
Grape Online Strategy Cases
Grape Online Strategy CasesGrape Online Strategy Cases
Grape Online Strategy Cases
 
норма санпин
норма санпиннорма санпин
норма санпин
 
俄罗斯Gost标准,进出口购买商品目录№RG 3783
俄罗斯Gost标准,进出口购买商品目录№RG 3783俄罗斯Gost标准,进出口购买商品目录№RG 3783
俄罗斯Gost标准,进出口购买商品目录№RG 3783
 
俄罗斯Gost标准,进出口购买商品目录№RG 3762
俄罗斯Gost标准,进出口购买商品目录№RG 3762俄罗斯Gost标准,进出口购买商品目录№RG 3762
俄罗斯Gost标准,进出口购买商品目录№RG 3762
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 
俄罗斯Gost标准,进出口购买商品目录№RG 3452
俄罗斯Gost标准,进出口购买商品目录№RG 3452俄罗斯Gost标准,进出口购买商品目录№RG 3452
俄罗斯Gost标准,进出口购买商品目录№RG 3452
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 146
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 389
 

Destacado

Living Life As A Software Tester
Living Life As A Software TesterLiving Life As A Software Tester
Living Life As A Software Testerguest00ae50
 
Антон Столяр - Agile Testing
Антон Столяр - Agile TestingАнтон Столяр - Agile Testing
Антон Столяр - Agile TestingQA Club Minsk
 
сопроводительное письмо
сопроводительное письмосопроводительное письмо
сопроводительное письмоKaterina Krivtsova
 
антон столяр «тестирование. эволюция профессии»
антон столяр   «тестирование. эволюция профессии»антон столяр   «тестирование. эволюция профессии»
антон столяр «тестирование. эволюция профессии»Anton Stoliar
 
Прокачай своё резюме! Как правильно составить успешное резюме на работу.
Прокачай своё резюме! Как правильно составить успешное резюме на работу.Прокачай своё резюме! Как правильно составить успешное резюме на работу.
Прокачай своё резюме! Как правильно составить успешное резюме на работу.Alexander Stoma
 
Как правильно составить резюме и написать сопроводительное письмо
Как правильно составить резюме и написать сопроводительное письмоКак правильно составить резюме и написать сопроводительное письмо
Как правильно составить резюме и написать сопроводительное письмоЕкатерина Мартынычева
 
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...Roman Dusenko
 
Create Your Tester Portfolio
Create Your Tester PortfolioCreate Your Tester Portfolio
Create Your Tester PortfolioShmuel Gershon
 

Destacado (8)

Living Life As A Software Tester
Living Life As A Software TesterLiving Life As A Software Tester
Living Life As A Software Tester
 
Антон Столяр - Agile Testing
Антон Столяр - Agile TestingАнтон Столяр - Agile Testing
Антон Столяр - Agile Testing
 
сопроводительное письмо
сопроводительное письмосопроводительное письмо
сопроводительное письмо
 
антон столяр «тестирование. эволюция профессии»
антон столяр   «тестирование. эволюция профессии»антон столяр   «тестирование. эволюция профессии»
антон столяр «тестирование. эволюция профессии»
 
Прокачай своё резюме! Как правильно составить успешное резюме на работу.
Прокачай своё резюме! Как правильно составить успешное резюме на работу.Прокачай своё резюме! Как правильно составить успешное резюме на работу.
Прокачай своё резюме! Как правильно составить успешное резюме на работу.
 
Как правильно составить резюме и написать сопроводительное письмо
Как правильно составить резюме и написать сопроводительное письмоКак правильно составить резюме и написать сопроводительное письмо
Как правильно составить резюме и написать сопроводительное письмо
 
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...
Как написать сопроводительное письмо? Роман Дусенко цикл Как найти работу в к...
 
Create Your Tester Portfolio
Create Your Tester PortfolioCreate Your Tester Portfolio
Create Your Tester Portfolio
 

Similar a Unittests

Customer Profiling&Targeted Advertisement
Customer Profiling&Targeted AdvertisementCustomer Profiling&Targeted Advertisement
Customer Profiling&Targeted Advertisement2tique
 
Aids 14.01.2009
Aids 14.01.2009Aids 14.01.2009
Aids 14.01.2009Oleg Zorak
 
Aids 14.01.2009
Aids 14.01.2009Aids 14.01.2009
Aids 14.01.2009Oleg Zorak
 
Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520beewolf
 
Управление рисками ИБ: отдельные практические аспекты
Управление рисками ИБ: отдельные практические аспектыУправление рисками ИБ: отдельные практические аспекты
Управление рисками ИБ: отдельные практические аспектыAleksey Lukatskiy
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479Turkmenistan Laws
 
норма санпин
норма санпиннорма санпин
норма санпинhelen-66
 
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovIntro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovSvetlin Nakov
 
Social Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksSocial Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksOleg Nazarevych
 
Учет рабочего времени сотрудников: полное руководство
Учет рабочего времени сотрудников: полное руководство Учет рабочего времени сотрудников: полное руководство
Учет рабочего времени сотрудников: полное руководство Yaware
 
IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)Alexander Klimov
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОSQALab
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяAnton Antich
 
OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1Dmitry Stillermann
 
Сегментация рынка и сегментационные исследования
Сегментация рынка и сегментационные исследованияСегментация рынка и сегментационные исследования
Сегментация рынка и сегментационные исследованияabramamama
 
Napredni vidovi drva
Napredni vidovi drvaNapredni vidovi drva
Napredni vidovi drvaguest402475
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897Azerbaijan Laws
 

Similar a Unittests (20)

Beauty
BeautyBeauty
Beauty
 
Customer Profiling&Targeted Advertisement
Customer Profiling&Targeted AdvertisementCustomer Profiling&Targeted Advertisement
Customer Profiling&Targeted Advertisement
 
Hiv
HivHiv
Hiv
 
Aids 14.01.2009
Aids 14.01.2009Aids 14.01.2009
Aids 14.01.2009
 
Aids 14.01.2009
Aids 14.01.2009Aids 14.01.2009
Aids 14.01.2009
 
Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520Taleb's Black Swan - SG 20090520
Taleb's Black Swan - SG 20090520
 
Управление рисками ИБ: отдельные практические аспекты
Управление рисками ИБ: отдельные практические аспектыУправление рисками ИБ: отдельные практические аспекты
Управление рисками ИБ: отдельные практические аспекты
 
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479
俄罗斯进出口标准,技术规格,法律,法规,中英文,目录编号RG 1479
 
норма санпин
норма санпиннорма санпин
норма санпин
 
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin NakovIntro To RDBMS And SQL Server 2005 - Svetlin Nakov
Intro To RDBMS And SQL Server 2005 - Svetlin Nakov
 
Social Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex NetworksSocial Bookmarks, Folksonomies–Complex Networks
Social Bookmarks, Folksonomies–Complex Networks
 
Учет рабочего времени сотрудников: полное руководство
Учет рабочего времени сотрудников: полное руководство Учет рабочего времени сотрудников: полное руководство
Учет рабочего времени сотрудников: полное руководство
 
IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)
 
Jazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПОJazz – открытая платформа разработки ПО
Jazz – открытая платформа разработки ПО
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 мая
 
OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1OO Design with C++: 1. Inheritance, part 1
OO Design with C++: 1. Inheritance, part 1
 
Сегментация рынка и сегментационные исследования
Сегментация рынка и сегментационные исследованияСегментация рынка и сегментационные исследования
Сегментация рынка и сегментационные исследования
 
L`Oreal BTL campaign
L`Oreal  BTL campaignL`Oreal  BTL campaign
L`Oreal BTL campaign
 
Napredni vidovi drva
Napredni vidovi drvaNapredni vidovi drva
Napredni vidovi drva
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3897
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Unittests

  • 2. Преимущества использования Поощрение изменений Я могу спокойно заниматься рефакторингом и быть уверенным, что все будет работать как и прежде Возможность тестирования приложения по частям Мне не нужно собирать полностью рабочую систему для проверки работоспособности одного компонента
  • 3. Преимущества использования Грамотный интерфейс модулей Когда я начинаю создавать тест до написания основного кода, я могу быть уверен, что модулем будет удобно пользоваться my $object = local::Factory::Some::DB::Object->read({id => 5})->[0]; local::Factory::Some::DB::Object->update({ id => $var- >id, name => 'new_name'}) Такого кода у вас точно не будет!
  • 4. Преимущества использования Уверенность в себе Я могу быть уверенным, что мой старый код, которым уже никто не занимается работает как и прежде Дадим отдохнуть QA Мы будем отлавливать множество багов ещё на этапе разработки. До QA дойдут только лучшие из наших багов.
  • 5. Чем нам поможет Perl? Test::More расскажу о функциях... use_ok('Some::Module'); ok( 1, 'all is ok' ); ok( 0, 'error' ) is( 'some data', 'some data', 'string are equal' ); like( 'some data', qr/some/, 'this will fail' ); is_deeply( { a=>1, b => 2 },{ a => 1, b => 2}); pass; fail; perldoc Test::More
  • 6. Пример теста #!/usr/bin/env perl use Test::More tests => 10; ok( 1 < 2, '1 < 2' ); SKIP: { skip 'We need to have 5.10 to use this', 1 if $] < 5.010; use feature qw(switch say); ok( say('some output'), 'say' ); }; isnt( $^O, 'windows' ); foreach ( 4..10 ) { rand(2) ? pass : fail; }
  • 7. Некоторые полезные модули 1. Test::Pod::Coverage - проходит только если для каждого метода описана Pod - документация 2. Test::Exception - если у вас используются исключения 3. Devel::Cover - показывает, какие строки вашего кода выполняются при тестировании (http://gugu.static.dev. rambler.ru/cover_db/coverage.html) 4. Test::Perl::Critic - находит типичные ошибки программистов
  • 8. А что с Web-ом? Как нам тестировать сайт?
  • 9. WWW::Mechanize Эмуляция браузера. можем ходить по ссылкам заполнять и отправлять формы
  • 10. Test::WWW::Mechanize Класс для тестирования веб-приложений. Содержит в себе кучу полезных методов. На нем мы остановимся поподробней.
  • 11. Методы Test::WWW::Mecha get_ok( 'path' ) - успех, если GET-запрос к path завершился успешно submit_form_ok( { form_number => 1, fields=> $data} ) - сабмитит первую форму на странице. успех, если запрос завершился успешно title_is( 'some title' ) - заголовок страницы должен быть quot;some titlequot; content_contains( 'some content' ) follow_link_ok( text => 'Удалить' ) - переходит по ссылке с этим именем
  • 12. Маленький пример #!/usr/bin/env perl use Test::More tests => 5; use Test::WWW::Mechanize; my $mech = Test::WWW::Mechanize->new; $mech->get_ok( $page ); $mech->base_is( 'http://petdance.com/', 'Proper <BASE HREF>' ); $mech->title_is( quot;Invoice Statusquot;, quot;Make sure we're on the invoice pagequot; ); $mech->content_contains( quot;Andy Lesterquot;, quot;My name somewherequot; ); $mech->content_like( qr/(cpan|perl).org/, quot;Link to perl.org or CPANquot; );
  • 13. И напоследок Никакие unit-тесты не заменят вам: отдел тестирования качественный код и мозги Они все лишь немного упростят вам жизнь!