Содержание
Олимпийское движение, Организация Объединенных Наций и воплощениеобщих идеалов
© David Burnett
Об авторе
Томас Бах
Томас Бах является Президентом Международного олимпийского комитета.
Когда люди всей планеты будут восторженно приветствовать свои национальные команды при их появлении на Олимпийском стадионе в Рио‑де‑Жанейро, Бразилия, для участия в церемонии открытия Олимпийских игр 5 августа 2016 года, зрители увидят что-то новое. Перед ними впервые появится команда спортсменов, составленная только из беженцев, которая гордо пройдет по стадиону под Олимпийским флагом, представляя отдельную олимпийскую команду беженцев.
В попытке более глубокого понимания мировым сообществом масштаба глобального беженского кризиса Международный олимпийский комитет (МОК) объявил о решении создать впервые в истории спорта отдельную олимпийскую команду беженцев, которое было озвучено в ходе семидесятой сессии Генеральной Ассамблеи Организации Объединенных Наций в 2015 году.
В составе этой команды 10 атлетов будут состязаться бок о бок с командами всех 206 национальных олимпийских комитетов. Эта команда будет представлять 65 миллионов беженцев разбросанных по всему земному шару, которые остались без крова в результате конфликта или войны. Атлеты-беженцы докажут всему миру, что, несмотря на невообразимые трагедии, которые им пришлось пережить, любой человек способен вносить полезный вклад в жизнь общества благодаря своим талантам, навыках и силы духа. Их команда будет служить символом надежды для всех других беженцев и сможет донести до международного сообщества осознание того, что беженцы являются нашими собратьями и приносят пользу обществу. Этим самым команда заявит о своей поддержке всеобщих ценностей терпимости, солидарности и мира. Она является напоминанием о главной цели Олимпийского движения — сделать мир лучше с посредством спорта.
Кроме того, олимпийская команда беженцев олицетворяет собой идеалы, объединяющие МОК и Организацию Объединенных Наций.
Обе организации были построены на одном фундаменте разделяемых идеалов терпимости, солидарности и мира. Их общей целью является мирное развитие человечества. Эти идеалы являются сердцевиной Олимпийского движения. Они закреплены в Олимпийской хартии, которая раскрывает принципы Олимпизма, разработанные Пьером де Кубертеном, основателем современных Олимпийских игр. В Олимпийской хартии указывается: «Цель Олимпизма заключается в том, чтобы поставить спорт на службу гармоничного развития человечества, способствуя созданию мирного общества, заботящегося о сохранении человеческого достоинства».
В олимпийском спорте действует принцип равенства всех атлетов, независимо от их происхождения, гендерной принадлежности, социального статуса или убеждений. Этот принцип недискриминации в спорте позволяет олимпийским играм пропагандировать мир и взаимопонимание между всеми народами. Спорт является одной из немногих сфер человеческой деятельности, где действует везде один закон: независимо от того, в какой точке земного шара мы соревнуемся, действуют одинаковые правила: забег на 100 метров всегда будет забегом на 100 метров, где бы мы ни находились.
Эти правила основываются на всеобщих ценностях честной игры, уважения и дружбы, и они признаются повсеместно.
В условиях глобализации нашего мира спорт обладает уникальной силой объединять людей. Олимпийские игры дают нам надежду на возможность построения более справедливого мира, ибо сами они подают пример мирного глобального взаимодействия.
Лучшей иллюстрацией этого духа единства многообразия является Олимпийская деревня. В этой деревне спортсмены всех 206 национальных олимпийских комитетов гармонично проживают вместе под одной крышей и без какой-либо дискриминации. Это место в буквальном смысле является глобальной деревней, где спортсмены узнают и понимают друг друга на уровне простого человеческого общения, делятся своим опытом, эмоциями и едой. Они также выражают уважение к другим спортсменам за их упорство к совершенству, будь то после победы или поражения. Тем самым олимпийцы подают пример всему миру, доказывая возможность честно соревноваться и мирно проживать вместе.
В этом смысле Организация Объединенных Наций и Олимпийское движение разделяют не только одни и те же цели, но и одинаковые принципы, какими путями сделать наш мир лучше. Деятельность обеих организаций строится на признании важности принципов всеобщности, равенства недискриминации и уважения правил. Вот как емко подытожил свое выступление Генеральный секретарь Организации Объединенных Наций Пан Ги Мун, заявив, что «Олимпийские принципы — это принципы Организации Объединенных Наций». Совпадение целей и принципов делают Организацию Объединенных Наций и МОК естественными партнерами в их стремлении к воплощению общих идеалов.
Сегодня спорт является составной частью современного и разнообразного общества. Благодаря глобальному охвату и привлекательности спорт играет важную роль в содействии построению миролюбивого общества. Такое взаимопонимание роли спорта заложено в саму сердцевину партнерства между Организацией Объединенных Наций и МОК.
В 2014 году МОК, учитывая уникальную роль спорта в современном мире, принял Олимпийскую повестку‑2020, которая представляет собой свод 40 рекомендаций, которые образуют «стратегическую дорожную карту», определяющую будущие перспективы развития Олимпийского движения.
Эти рекомендации дают четкое представление о том, как упрочить ценности спорта в современном обществе, и о том, как уберечь уникальность Олимпийских игр. Олимпийская повестка‑2020 построена на основе признания того, что в условиях глобализации современного мира спорт должен поставить свою сплачивающую и объединяющую силу на службу человечеству. Для МОК, рекомендации, содержащиеся в Повестке‑2020, означают необходимость обеспечения более полной открытости перед обществом и более активного поиска партнеров для дальнейшего продвижения наших целей. В нашем тесно взаимосвязанном и взаимозависимом мире прогресс в деле отстаивания ценностей спорта и повышения роли спорта в жизни общества требует налаживания сотрудничества. Чтобы спорт служил человечеству, он должен взаимодействовать с обществом. Олимпийская повестка‑2020 служит базовым документом, на который должен опираться МОК при реализации своей активной роли в современном мире.
Проявлением вновь обострившегося чувства необходимости налаживания сотрудничества стало углубление в последние годы партнерского взаимодействия между МОК и Организацией Объединенных Наций.
Пожалуй, наилучшим выражением духа партнерства является традиция устанавливать «олимпийское перемирие». Фундаментом для проведения древних Олимпийских игр в условиях мира было введение священного перемирия — «экехейры», во время которого обеспечивалось прекращение боевых действий и гарантировалось безопасное передвижение атлетов и гостей в древний Олимп и назад домой.
Организация Объединенных Наций, в тесном сотрудничестве с МОК, продолжает эту традицию, отметившую 3000 лет с момента своего зарождения. Признавая символическую значимость «олимпийского перемирия» для современного мира, Генеральная Ассамблея каждый раз принимает резолюцию об объявлении «олимпийского перемирия» в преддверии очередных олимпийских игр с 1994 года. Совсем недавно, 26 октября 2015 года, Ассамблея приняла резолюцию, озаглавленную «Утверждение мира и построение более счастливой жизни на планете посредством спорта и воплощения олимпийских идеалов», которую поддержало более 180 государств-членов. В этой резолюции Генеральная Ассамблея настоятельно призывает государства-члены соблюдать «олимпийское перемирие» в период, начинающийся за семь дней до начала XXXI Олимпийских летних игр 5 августа 2016 года и заканчивающийся через семь дней после закрытия XV Паралимпийских летних игр 17 сентября, которые тоже пройдут в Рио‑де‑Жанейро.
Помимо «олимпийского перемирия», сотрудничество между Организацией Объединенных Наций и МОК расширилось в целом ряде различных направлений. Важным шагом в деле воплощения наших общих целей стало подписание меморандума о договоренности двумя организациями в 2014 году. Хотя МОК уже имел статус постоянного наблюдателя в Генеральной Ассамблее, предоставленный ему в 2009 году, подписание первого в их отношениях официального меморандума о договоренности между Организацией Объединенных Наций и МОК создало правовую базу для сотрудничества во многих важных областях, в которых спорт может содействовать социальной интеграции и экономическому развитию. Такими сферами являются качественное образование, здравоохранение, расширение прав и возможностей женщин и девочек и миростроительство. Опираясь на эту правовую базу, МОК, с участием национальных олимпийских комитетов, спортивных федераций, оргкомитетов и самих спортсменов, будет налаживать отношения сотрудничества с государствами-членами, специальными посланниками, специальными советниками и послами доброй воли, а также со специализированными учреждениями, фондами и программами Организации Объединенных Наций.
Еще одним элементом сотрудничества в рамках этого партнерства было то, что Генеральная Ассамблея в своей Повестке дня в области устойчивого развития на период до 2030 года, которая содержится в ее резолюции 70/1 от 25 декабря 2015 года, прямо назвала спорт «одним из важных факторов» содействия укреплению мира и взаимопонимания. В новой повестке дня также признается растущий вклад спорта в дело развития и мира, поскольку он способствует утверждению принципов терпимости и уважения и содействует расширению прав и возможностей женщин и молодежи, отдельных лиц и общин, а также достижению целей в области здравоохранения, образования и социальной интеграции.
Спорт может способствовать продвижению усилий международного сообщества в конкретном выражении в рамках реализации целей в области устойчивого развития, установленных в Повестке дня‑2030, которая будет служить ориентиром в обеспечении социального и экономического развития на глобальном уровне в течение следующих 14 лет.
Проникновение спорта во все сферы жизни позволяет ему направлять свою энергию на содействие достижению нескольких целей в области развития одновременно.
Спорт может играть особо важную роль в таких областях, как обеспечение здорового образа жизни (цель № 3), обеспечение всеохватного и справедливого образования (цель № 4), обеспечение гендерного равенства (цель №5) и содействие построению миролюбивого и открытого общества (цель № 16).
МОК оказывает содействие достижению всех целей в области устойчивого развития и, работая в сотрудничестве с национальными олимпийскими комитетами, а также осуществляя собственные инициативы, играет важную роль в оказании помощи всем странам в их усилиях добиться осуществления этой амбициозной повестки дня.
Следует отметить еще одну актуальную сферу сотрудничества между Организацией Объединенных Наций и МОК, которой является оказание помощи беженцам, разбросанным по всему земному шару. Хотя МОК осуществляет партнерское сотрудничество с Управлением Верховного комиссара Организации Объединенных Наций по делам беженцев (УВКБ) на протяжении более 20 лет, оказывая помощь беженцам в многочисленных лагерях по всему свету, вспышка нынешнего беженского кризиса придает особую неотложность в работе наших организаций.
Теперь приходится оказывать столь нужную экстренную помощь и услуги быстро и там, где они больше всего необходимы. Назначение в 2014 году почетного президента МОК Жака Рогге Специальным посланником Генерального секретаря Организации Объединенных Наций по делам беженской молодежи и спорта свидетельствует о степени разделяемой обеспокоенности наших организаций этой гуманитарной проблемой. Это также указывает на наличие общего понимания того, что спорт является важным инструментом содействия расширению прав и возможностей молодежи из общин беженцев. В условиях нынешнего глобального беженского кризиса МОК создал специальный фонд в размере 2 млн. долл. США для разработки проектов оказания помощи беженцам через спорт в сотрудничестве с национальными олимпийскими комитетами по всему земному шару.
С 2004 года МОК и УВКБ осуществляют программу «Пожертвовать — значит одержать победу». Эта глобальная кампания солидарности привлекает спортсменов, чиновников и спонсоров олимпийских игр, национальных олимпийских комитетов и других заинтересованных участников Олимпийского движения к оказанию поддержки беженцам и проведению информационных мероприятий по разъяснению их бедственного положения.
Объявление о формировании олимпийкой команды беженцев в ходе сессии Генеральной Ассамблеи служит еще одним подтверждением общей заинтересованности наших организаций в поиске решений для урегулирования одного из самых острых кризисов нашего времени.
В создании этой команды МОК тесно взаимодействовал с УВКБ, которое должно назначить заместителя начальника команды. Обе наши организации изыскивают новые каналы поддержки олимпийской команды беженцев, опираясь при этом на двадцатилетний опыт сотрудничества.
Олимпийские игры 2016 года в Рио‑де‑Жанейро проходят в напряженное время. Беженский кризис представляет собой всего лишь один из многочисленных вызовов, с которыми сталкивается международное сообщество сегодня. Сейчас как никогда нам нужны такие ценности, как терпимость, солидарность и мир. Связанные общими ценностями наши две организации — Организация Объединенных Наций и Международный олимпийский комитет имеют уникальные возможности добиваться дальнейшего в деле утверждения мира и построения более счастливой жизни на нашей планете.
Игры помогут зажечь столь необходимый огонек надежды в наши тяжелые времена. Такой луч надежды будет, пожалуй, самым важным наследием, которое оставит после себя Олимпиада в Рио‑де‑Жанейро для Бразилии и для всего мира.
Фернандо Ариас
Все заинтересованные стороны должны играть свою роль в избавлении мира от химического оружия
Процесс уничтожения объявленных ОЗХО химических арсеналов скоро будет завершен. Однако происходящие в настоящее время глобальные события наглядно демонстрируют, что недопущение повторного появления химического оружия – это тот пункт повестки дня, который всегда будет оставаться открытым.
Население планеты скоро вырастет до 8 миллиардов – и что тогда?
Удовлетворение потребностей и повышение уровня жизни многочисленного и растущего населения планеты потребует повышения уровня производства и приведет к росту потребления. В свою очередь, повышение уровня производства и рост потребления усилят давление на естественную среду обитания, если не будут сопровождаться «зелеными» реформами в области энергетики, производства и транспорта, а также изменениями в поведении людей.
Дункан Коупленд
Сотрудничество и наращивание потенциала в целях пресечения незаконного, несообщаемого и нерегулируемого рыбного промысла
Поскольку рыбные запасы и морские экосистемы находятся под постоянно растущим давлением человеческой деятельности, пресечение ННН-промысла сегодня актуально как никогда, хотя в период моего пребывания в Гвинее-Бисау почти двадцать лет назад эта задача казалась невыполнимой.
Международный Олимпийский комитет (МОК, история создания, цели, задачи, содержание деятельности)
Похожие презентации:
Международный Олипийский Комитет
Адаптивный спорт: современное состояние, проблемы и перспективы развития
Олимпийские игры. 10 класс
Паралимпийские игры
История развития Олимпийских игр
История Олимпийских игр
Правовые основы деятельности международных спортивных организаций и олимпийских игр
Международный конкурс красоты и спорта «Queen Fighter 2019».
Цели и задачи конкурса
Олимпийские игры
История Олимпийских Игр
Международный
Олимпийский комитет
(МОК, история создания,
цели, задачи, содержание
деятельности
Презентацию подготовила
студентка группы 1ПСО12
Пискова Светлана
ООН
(Организация
Объединенных Наций)
Совет Безопасности
Генеральная
Ассамблея
Комитеты и
комиссии
Генеральной
Ассамблеи
Международный
суд
Экономический и
социальный совет
Комитеты и
комиссии
экономического и
социального
советов, в частности
региональные
экономические
Социализированные
учреждения:
ЮНЕСКО
ВОЗ
МОТ
ФАО
МОК
Цель олимпийского движения способствовать построению
лучшего мира и воспитывать
молодежь средствами спорта без
какой-либо дискриминации и в духе
соблюдения принципов олимпизма,
что включает в себя
взаимопонимание, дружбу,
атмосферу солидарности и
честной игры.
МЕЖДУНАРОДНЫЙ ОЛИМПИЙСКИЙ
КОМИТЕТ (МОК) — высший, постоянно
действующий орган современного олимпийского
движения. Неправительственная,
некоммерческая организация.
Создан 23 июня 1894 по инициативе
французского общественного деятеля
П. де Кубертена
Уставный документ МОК —
Хартия Олимпийских игр
Штаб-квартира МОК — в Лозанне (Швейц
ария).
Официальные языки – французский и англ
ийский.
Своих членов он избирает из лиц, которые проживают в
странах, имеющих НОК. Для страны избирается один член
МОК (для крупнейших и наиболее активно участвующих в
олимпийском движении стран, а также для тех, где уже
проводились Олимпийские игры, могут быть 2 члена).
Президент МОК- избирается
на срок- 8 лет
1. Деметриус Викелас (Греция, 1894–1896)
2. Пьер де Кубертен (Франция, 1896–1925)
3. Анри де Боле-Латур (Бельгия, 1925–1942)
4. Зигфрид Эдстрем (Швеция, 1946–1952)
5. Эвери Брендэйдж (США, 1952–1972)
6.
Майкл Моррис Килланин (Ирландия, 1972–1980)
7. Хуан Антонио Самаранч (Испания, 1980–2001)
8. Жак Рогге (Бельгия, 2001– наст. вр.)
В составе МОК 110 членов из более 70 стран ( на 2006). Члены
комитета являются его представителями в своих странах, а не
наоборот. Согласно действующему регламенту член комитета
избирается на 8-летний срок с возможностью переизбираться на
новый срок. Возраст члена комитета не может превышать 70 лет.
В МОК входят россияне В. Г. Смирнов (с 1971), Ш. А. Тарпищев
(с 1994), А. В. Попов (с 1999). Члены Комитета избирают тайным
голосованием президента МОК
СМИРНОВ Виталий
Георгиевич
(14.02.35)
Выпускник Государственного центрального
ордена Ленина института физической куль
туры (1958).
Вице-президент Международного олимпий
ского комитета, почетный президент Олим
пийского комитета России и действительн
ый член Академии творчества, президент
Ассоциации национальных олимпийских ко
митетов СНГ, член Союза журналистов РФ
.
Председатель Олимпийского комитета СССР (1990-1992).
Президент Олимпийского комитета России (1992-2001)
Член Международного олимпийского комитета ( с 1971 г.) Избирался члено
м Исполкома (1974-1978, 1986-1990), вице-президентом МОК (1978-1982, 1
990-1994, 2001 по настоящее время), председателем Комиссии МОК по до
пуску (1992-1998) и Комиссии по олимпийской программе (1983-1991).
Александр Попов
Дата рождения: 16 ноября, 1971
Место рождения: с. Нижняя Тура,
Специализация: плавание 50 и 100
м вс, 50 м спина
ТАРПИЩЕВ Шамиль
Анвярович
(07.03.48)
Неоднократный победитель российских и
международных соревнований по теннису.
Трижды входил в число десяти лучших теннисистов
СССР.
Заслуженный тренер РСФСР (1981) и СССР (1985).
Олимпийские игры состоят из Игр
Олимпиады и Зимних Олимпийских
игр, каждые из которых проводятся
раз в четыре года, согласно
положениям п.4.
4. Первые Зимние Олимпийские игры
проводились в 1924 г.
Начиная с 1924
г. они вели свою нумерацию в
порядке их проведения; однако XVII
Зимние
Олимпийские
игры
состоялись в 1994 г.
синий — это Европа
черный – Африка
красный – Америка
желтый – Азия
зеленый – Австралия.
Флаг
олимпийского
движения
представляет собой 5 переплетённых
колец на белом фоне: голубое, жёлтое,
чёрное, зелёное и красное. Кольца
символизируют пять континентов,
страны
которых
участвуют
в
олимпийском движении.
Гимн Олимпийских игр исполняется при
поднятии Олимпийского флага во время
открытия очередных игр, а также по их
завершению и в некоторых других случаях.
Название этот символ носит: «Дети удачи»,
или «Фува» — богиня благополучия
Один из выдающихся спортсменов произносит
клятву в честности соревнований от имени всех
соревнующихся. Затем один из судей произносит
клятву в честном и объективном судействе.
«От имени всех спортсменов я
обещаю, что мы будем
участвовать в этих Олимпийских
играх, уважая и соблюдая
правила, по которым они
проводятся, в истинно
спортивном духе, во славу
«Быстрее, выше, сильнее»,
что является переводом
латинского выражения «Citius,
Altius, Fortius».
Существует также неофициальный
девиз «Главное — не победа, а
участие»
Олимпийские медали: золотую,
серебряную и бронзовую
вручают трём спортсменам,
показавшим наилучшие результаты в
соревновании. В командных видах
спорта медали равного достоинства
получают все члены команды.
Медаль XXIII летних Олимпийских игр
Оливковая ветвь, или «котинос»,
представляет собой свёрнутую в виде
венка ветвь, которую вручают
победителю вместе с золотой
медалью.
Олимпийский салют является
разновидностью римского салюта, но
с более высоким подниманием руки.
Талисман для каждой Олимпиады
выбирается принимающей страной
по своему усмотрению. Обычно
талисманом выбирают какое-либо
животное или иное стилизованное
изображение, ассоциирующееся в
представлении большинства людей
с принимающей страной.
Олимпийский огонь зажигают в
древней Олимпии в Греции от
параболического зеркала и
передаётся с помощью факела
посредством эстафеты от
атлета к атлету.
Таким способом
Олимпийский огонь пересекает все
5 населённых континентов Земли и
прибывает к месту проведения
Олимпийских игр в день их открытия
для того, чтобы зажечь пламя
олимпийского костра. Это
символизирует открытие игр. По
завершении всех соревнований
олимпийский огонь костра гасится,
что символизирует закрытие игр.
Каждые Олимпийские Игры
имеют свою уникальную
эмблему символизирующую
город и страну организатор.
Паралимпи́ йские и́ гры
(параолимпийские игры) —
международные спортивные
соревнования для инвалидов.
Традиционно проводятся после
главных Олимпийских игр, а
начиная с 1992 — в тех же
городах; в 2001 эта практика
закреплена соглашением между
МОК и Международным
паралимпийским комитетом
(МПК). Летние паралимпийские
игры проводятся с 1960, а
зимние паралимпийские игры — с
1976.
Название «параолимпийский»
образовано от греческой
приставки «παρα-» — «около,
наряду»; имеется в виду
1.
Лыжный спорт
2.Биатлон
3.Конькобежный спорт
4.Бобслей
5.Санный спорт
6.Хоккей с шайбой
7.Кёрлинг
8.Скелетон
o
o
o
o
o
o
Академическая
гребля
Бадминтон
Баскетбол
Бокс
Борьба
Греко-римская
Вольная
Велоспорт
Трековые гонки
Шоссейные гонки
Маунтинбайк
BMX
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Водные виды спорта
Гимнастика
Парусный спорт
Водное поло
Спортивная гимнастика
Современное
пятиборье
Плавание
Художественная
гимнастика
Стрельба
Прыжки в воду
Прыжки на батуте
Стрельба из лука
Синхронное плавание
Дзюдо
Теннис
Волейбол
Конный спорт
Триатлон
Волейбол
Выездка
Тхэквондо
Пляжный волейбол
Конкур
Тяжёлая атлетика
Гандбол
Троеборье
Фехтование
Гребля на байдарках
и каноэ
Лёгкая атлетика
Футбол
Гребля на байдарках и
Настольный теннис
Хоккей на траве
каноэ
Гребной слалом
•Водно-моторный спорт (1908)
•Гольф (1900, 1904)
•Жё-де-пом (фр.
jeu de paume) (1908)
•Крикет (1900)
•Крокет (1900)
•Лакросс (1904, 1908)
•Баскская пилота (1900)
•Перетягивание каната (1900, 1904,
1908, 1912, 1920)
•Поло (1900, 1908, 1920, 1924, 1936)
•Рэкетс (1908)
•Регби (1900, 1908, 1920, 1924)
•Рокки (1904)
•Регби-7
•Гольф
•Сквош
•Карате
•Роликовый спорт
•Бейсбол
•Софтбол
Спасибо за внимание!
English
Русский
Правила
Агентство ООН по делам беженцев наградили Олимпийским кубком за вклад в развитие спорта — UNHCR Russia
Президент Международного олимпийского комитета Томас Бах награждает Олимпийским кубком Верховного комиссара ООН по делам беженцев Филиппо Гранди. © МОК / Кристоф Моратал
УВКБ ООН получило награду от Международного олимпийского комитета (МОК) за поддержку беженцев и принимающих их сообществ через спорт и продвижение ценностей олимпийского движения во всем мире.
Олимпийский кубок был учрежден в 1906 году основателем современного олимпийского движения Пьером де Кубертеном.
С тех пор эта награда ежегодно вручается организации, которая «сделала выдающийся вклад в спорт или продвижение олимпийской идеи».
Принимая награду, Филиппо Гранди, Верховный комиссар ООН по делам беженцев, отметил: «Эта награда — дань уважения всем моим коллегам по всему миру, которые сделали все возможное, чтобы беженцы занимались спортом даже в самых сложных обстоятельствах. И, конечно же, это дань уважения перемещенным лицам и принимающим их сообществам, которые понимают преобразующую силу спорта и используют предоставленные им возможности».
«УВКБ ООН — твердый сторонник олимпийских ценностей. Приверженность МОК и всего олимпийского движения поддержке беженцев основана на нашей фундаментальной вере в способность спорта делать мир лучше, — подчеркнул президент МОК Томас Бах. — УВКБ ООН разделяет нашу веру. Для детей и молодежи, оказавшихся без дома в результате войны или преследований, спорт — это гораздо больше, чем просто досуг. Это возможность излечиться, развиваться и расти».
Спорт является важным компонентом миссии УВКБ ООН по защите и расширению прав и возможностей перемещенных детей и молодежи, а также по содействию социальной интеграции и установлению хороших отношений с принимающими сообществами.
«Спорт не только касается физических преимуществ. Он поддерживает психическое благополучие, командную работу, дружбу и уважение, а также способствует взаимопониманию и позитивным отношениям между вынужденными переселенцами и теми, кто их принимает. Партнерство УВКБ ООН и МОК преследует именно такие цели», — заявил Филиппо Гранди.
Беженцы заболели олимпийской лихорадкой в 2016 году, когда команда из десяти спортсменов-беженцев приняла участие в Олимпийских играх в Рио-де-Жанейро, а еще двое участвовали в Паралимпийских играх. После Рио спортсмены-беженцы принимали участие Азиатских играх по боевым искусствам и состязаниям в помещениях 2017 года в Туркменистане, в Чемпионате мира по легкой атлетике в Лондоне в 2017 году и во многих других мероприятиях на региональном, национальном и международном уровнях.
Во время 133-й сессии в Буэнос-Айресе в 2018 году МОК решил использовать наследие Рио и создать вторую олимпийскую команду беженцев МОК для участия в Олимпийских играх в Токио-2020. Таким образом МОК стремится внести вклад в борьбу с глобальным кризисом беженцев, выразить солидарность и вселить надежду миллионам перемещенных людей по всему миру.
Пятьдесят олимпийцев-беженцев МОК, проживающих в 20 странах и представляющих 11 видов спорта, стремятся завоевать первые места. Окончательный состав команды беженцев для игр в Токио будет объявлен в июне. Среди дисциплин: легкая атлетика, бадминтон, бокс, велоспорт, дзюдо, карате, пневматическая винтовка, плавание, тхэквондо, тяжелая атлетика и борьба.
Йех Пур Биль, беженец из Южного Судана, который участвовал в забеге на 800 метров в Рио и нацелился на второе олимпийское выступление в Токио, заявил: «Я получил удивительную поддержку от УВКБ ООН и МОК. Это дало мне шанс преуспеть в качестве спортсмена, привело меня в новые страны и к новым друзьям.
В результате я осуществил многие свои мечты и продолжаю добиваться большего. Мне бы очень хотелось, чтобы каждый беженец — юноша, девушка, мужчина или женщина — получил возможность заниматься спортом, где бы он ни находился».
Юсра Мардини, которая также соревновалась в Рио как пловец и чья история опасного путешествия к безопасности стало известной во всем мире, отметила: «Спорт буквально спас мне жизнь, поэтому я твердо верю, что у каждого должен быть шанс заниматься каким-либо его видом. Спорт имеет преимущества, выходящие за рамки здоровья: он освобождает ваш разум от всех забот, заставляет ставить перед собой личные цели, учит уважать других и заводить новые знакомства. Как посол Доброй воли УВКБ ООН, я хотела бы, чтобы все беженцы занимались спортом, и поэтому работа УВКБ и МОК бесценна».
Партнерство УВКБ ООН и МОК длится уже более четверти века. Организации заключили Соглашение о сотрудничестве в 1994 году, и с тех пор работают в более чем 50 странах. В 2017 году МОК учредил Олимпийский фонд помощи беженцам, целью которого стало создание безопасных и доступных спортивных площадок и программ для молодых беженцев и вынужденно перемещенных молодых людей.
В прошлом месяце на Глобальном форуме по беженцам в Женеве УВКБ ООН и МОК объявили о создании новой спортивной коалиции, которая предоставит молодым беженцам возможности для занятий спортом, расширив их доступ к помещениям, мероприятиям и соревнованиям на всех уровнях.
Для получения более подробной информации вы можете связаться:
- Женева, Ник Сор, [email protected], +41 79 447 0275
Первые принципы создания фиктивных объектов
Вы должны тратить все свое время на создание фиктивных объектов, которые вам нужны… и не более того. Вот три принципа, которые помогут вам решить, сколько вам действительно нужно сделать.
Создание фиктивных объектов (и их собратьев, таких как заглушки и подделки) не является бесплатным, поэтому, хотя вы должны тратить на их создание столько времени, сколько вам нужно, вы не должны тратить больше времени, чем вам абсолютно необходимо. Вот три принципа, которые помогут вам решить, сколько вам действительно нужно сделать.
Тестировать сложно. То же самое относится и к планированию программных проектов, но мы внедрили гибкие процессы, чтобы упростить это — в первую очередь за счет сокращения окна планирования до четырех-шести недель, что, по-видимому, является тем сроком, с которым простые смертные могут надежно справиться. Модульный тест -> интеграционный тест -> иерархия сквозных тестов выполняет ту же функцию упрощения: тест на любом уровне иерархии должен обрабатывать только проблемы своего уровня и может игнорировать остальные. Точно так же стресс-тестирование, нагрузочное тестирование и другие этапы тестирования упрощают то, что вам нужно делать, например, при модульном тестировании, разгружая проблемы со стрессом и нагрузкой.
Однако хотя фиктивные объекты могут упростить ваше тестирование пятью способами, это не означает, что вы всегда должны использовать их преимущества.
Можно ли использовать фиктивные объекты?
Конечно, прежде чем вы сможете использовать фиктивные объекты, вам необходимо приложение, поддерживающее имитации: слабосвязанная архитектура, позволяющая вставлять фиктивные объекты вместо реальных объектов/зависимостей.
Этому способствует некоторая форма внедрения зависимостей, как и большинство шаблонов проектирования. Основным исключением из этого правила является Fakes от Microsoft, где прокладки позволяют вставлять объекты в скомпилированный код для замены исходных объектов, однако Fakes доступен только в Visual Studio Enterprise, что дорого (многие эффективные инструменты для имитации бесплатны, включая Moq, Rhino Mocks и собственный Telerik JustMock Lite от Progress).
Связывание ссылок на объекты вашего кода с интерфейсами, а не с классами, также упрощает интеграцию фиктивных объектов в ваше тестирование (хотя, как я уже говорил в другом месте, вы можете использовать фиктивные объекты, даже если вы не используете интерфейсы).
Для чего вы используете фиктивные объекты?
Вы также должны знать, что фиктивные объекты могут сделать для вас. Основываясь на обсуждении Джерарда Месароса в xUnit Test Patterns, «тестовые двойники» упрощают тестирование, выступая в пяти ролях (я использую «роли» и «тестовые двойники», чтобы избежать споров о том, какой из результирующих объектов должен правильно называться « имитировать объекты»).
Вот пять ролей, для которых я использую тестовых двойников:
- Изоляция «тестируемого компонента/кода» (CUT) путем предоставления одинакового ответа на каждый вызов
- Предоставление некоторой минимальной реализации для вызова, но возврат другого результата для каждого вызова
- Будет передаваться, но никогда не использоваться (передача null в качестве аргумента в список параметров)
- Вывод информации о конкретном вызове
- Отчетная информация о контексте вызова (количество вызовов, последовательность вызовов и т. д.)
Все эти роли упрощают тестирование: изоляция CUT гарантирует, что вы знаете, в чем проблема, когда тест терпит неудачу, отчеты упрощают проверку конкретных видов сбоев, минимальная реализация снижает сложность, связанную с взаимодействием с «настоящим» тестом. объект и так далее.
Но упрощение кода путем создания тестовых двойников не обязательно означает устранение кода, что приводит к первому принципу использования любого тестового двойника.
Первый принцип: Сосредоточьтесь на своей работе
Прежде чем приступить к созданию тестового двойника, вспомните, в чем заключается ваша работа: предоставить работающий, надежный, готовый к работе код. Какую бы стратегию вы ни выбрали для тестирования, ваша задача — , а не создавать/управлять/поддерживать тестовые двойники.
Каждая строка кода, которую вы добавляете к тестовому двойнику, увеличивает время, которое вы тратите на производственный код, включая затраты на обслуживание, связанные с любым набором кода. Вдобавок ко всему, у тестовых двойников есть своя собственная уникальная нагрузка по обслуживанию. Например, если объект, который заменяет тестовый двойник, изменяется, то все его тестовые двойники также должны быть обновлены (более подробное обсуждение затрат на поддержку тестовых двойников см. в посте Стива Бемента).
Да, верно и обратное: вы должны создавать дубликаты тестов везде, где это снижает нагрузку на техническое обслуживание тестирования.
Время от времени я встречаю кого-то, кто говорит, что не создает объекты для имитации результатов своей базы данных, потому что «мы управляем нашей тестовой базой данных, чтобы она поддерживала наши тесты». Я подозреваю, что они тратят гораздо больше времени на управление своей тестовой базой данных, чем потребовалось бы для создания соответствующих тестовых двойников.
Ключевым моментом, однако, является то, что если вы тратите значительное количество времени на обновление фиктивных объектов, чтобы ваши тесты не провалились, т.е. если ваш код в порядке, но ваши фиктивные объекты часто ошибаются, то вы нарушаете первый принцип.
Второй принцип: Сосредоточьтесь на цели теста
Второй принцип переносится с вашей работы на ваши тесты: помните цель теста, для которого вы строите тестовый двойник.
Для модульных тестов ваша цель — доказать, что ваш CUT «делает правильные вещи», когда для CUT предоставляется определенный набор входных данных. Например, в модульном тесте вам нужно только создать фиктивный объект, чтобы изолировать CUT, когда взаимодействие с этим «другим объектом» может привести к сбою вашего теста или привести к нежелательным побочным эффектам (забрасывание ваших клиентов ложными электронными письмами, для пример).
Использование подхода «черного ящика» к тестированию еще больше упрощает тестирование, уменьшая критерии «правильных действий» для любого теста: в модульном тесте, если вы получаете правильный результат, ваш CUT прошел. Если вы проверяете, «насколько хорошо» CUT справился со своей задачей, то вы, вероятно, занимаетесь нагрузочным или стресс-тестированием.
Вы должны создавать тестовый двойник только в том случае, если это упростит ваше тестирование и поможет доказать, что ваш CUT проходит текущий уровень тестирования.
Третий принцип: пишите только то, что вам нужно
И первые два принципа ведут к третьему и последнему принципу: если вы создаете тестовый двойник, не пишите для него больше кода, чем вам нужно для удовлетворения потребностей вашего теста. Как следствие: когда вы создаете тестовый двойник, отдавайте предпочтение декларативному подходу, который позволяет фреймворку создавать процедурные детали за вас.
Здесь вас могут соблазнить инструменты.
Telerik JustMock позволяет легко создавать тестовые двойники, которые поддерживают любую из пяти ролей (и многое из этого делает декларативно). Например, для тестов типа контекста вызова можно проверить последовательность вызовов, добавив метод InOrder к тестовому вызову. Если вы хотите проверить, как часто вызывается тестовый двойник, вы можете просто добавить к вызову одну из опций в перечислении Occurs.
Однако, каким бы простым/очевидным/декларативным ни был процесс, добавление большего количества кода тестового двойника увеличивает время создания тестового двойника и объем обслуживания, которое потребуется вашему тестовому двойнику. Кроме того, если вы добавите больше тестов, вы, вероятно, почувствуете себя обязанными протестировать и просмотреть результаты этих тестов. И, конечно же, чем больше тестов, тем больше шансов на провал… и это нормально, если вы участвуете в соответствующем тесте. Несоответствующее тестирование (независимо от того, насколько оно благонамеренно) отвлекает вас от работы (см.
первый принцип). Напишите, что вам нужно, чтобы пройти тест. Тогда остановись.
Подводя итог: когда дело доходит до создания тестовых двойников/фиктивных объектов, выберите хороший инструмент (он сделает вашу жизнь проще). Затем используйте свой инструмент имитации столько, сколько вам нужно, чтобы удовлетворить потребности вашего теста (что может быть «совсем нет» для некоторых тестов). Затем запустите свои тесты и вернитесь к написанию производственного кода.
Моделирование, Тестирование
об авторе
Питер Фогель
Питер Фогель — системный архитектор и руководитель информационных служб PH&V. PH&V предоставляет комплексные консультации от дизайна UX до объектного моделирования и проектирования баз данных. Питер также пишет курсы и преподает для Learning Tree International.
Похожие сообщения
Производительность
Тестирование
Производительность
Тестирование
Производительность
Тестирование
Производительность
Комментарии
Включите JavaScript для просмотра комментариев, созданных с помощью Disqus.
Все статьи
Темы
Интернет
- Блейзор
- ASP.NET MVC
- Ядро ASP.NET
- ASP.NET АЯКС
- jQuery
- Угловой
- Реагировать
- Вью
Мобильный
- Ксамарин
- .NET МАУИ
Рабочий стол
- WinUI
- UWP
- WinForms
- WPF
- Blazor Desktop/.NET MAUI
Дизайн
- UX
- Дизайн-системы
Производительность
- Отладка
- Составление отчетов
- Тестирование
- Обработка документов
человек
- Доступность
- Человечество
Выпускать
Последние новости
в папке «Входящие»
Подпишитесь, чтобы первыми получать наши статьи и руководства для разработчиков, написанные экспертами!
Country/TerritorySelect country/territoryUSACanadaBulgariaGermanyUnited KingdomAustraliaIndiaAfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelgiumBelizeBeninBermudaBhutanBoliviaBosnia and HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean Terr.
Brunei DarussalamBurkina FasoBurundiCambodiaCameroonCabo VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongo (Brazzaville)Congo, the democratic republic of theCook IslandsCosta RicaCote d’IvoireCroatia (Hrvatska)CuracaoCyprusCzechiaDenmarkDjiboutiDominicaDominican РеспубликаЭквадорЕгипетСальвадорЭкваториальная ГвинеяЭритреяЭсватиниЭстонияЭфиопияФолклендские островаФарерские островаФиджиФинляндияФранцияФранцузская ГвианаФранцузская ПолинезияФранцузская Южная Терр.ГабонГамбияГрузияГанаГибралтарГрецияГренландияГренадаГваделупаГуамГватемалаГернсиГвинеяГвинея-БисауГайанаГаитиHea rd and McDonald Is.ГондурасГонконгВенгрияИсландияИндонезияИракИрландияИзраильИталияЯмайкаЯпонияДжерсиИорданияКазахстанКенияКирибатиКорея (Республика)КувейтКыргызстанЛаосская Народно-Дем. Rep.LatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMadagascarMalawiMalaysiaMaldivesMaliMaltaMan, Isle ofMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern Mariana Is.
North MacedoniaNorwayOmanPakistanPalauPalestine, State OfPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarReunionRomaniaRwandaS.Georgia and S.Sandwich Is.Saint Kitts and NevisSaint LuciaSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth SudanSpainSri LankaSt. ЕленаСв. Пьер и МикелонСв. Винсент и ГренадиныСуданСуринамОстрова Шпицберген и Ян-Майен.ШвецияШвейцарияТайваньТаджикистанТанзанияТаиландТимор-ЛештиТогоТокелауТонгаТринидад и ТобагоТунисТурцияТуркменистанОстрова Теркс и КайкосТувалуСША. Малые отдаленные острова. УгандаУкраинаОбъединенные Арабские ЭмиратыУругвайУзбекистанВануатуВатикан (Святой Престол)ВенесуэлаВьетнамВиргинские острова (Британские)Виргинские острова (США)Острова Уоллис и Футуна.Западная СахараЙеменЗамбияЗимбабве
модульное тестирование — Какова цель фиктивных объектов?
Поскольку вы говорите, что вы новичок в модульном тестировании, и попросили фиктивные объекты в «понятиях непрофессионала», я попробую пример непрофессионала.
Представьте модульное тестирование для этой системы:
повар <- официант <- клиент
Как правило, легко представить тестирование низкоуровневого компонента, такого как cook :
cook <- тест-драйвер
Водитель-испытатель просто заказывает разные блюда и проверяет, возвращает ли повар правильное блюдо для каждого заказа.
Сложнее протестировать промежуточный компонент, такой как официант, который использует поведение других компонентов. Наивный тестировщик мог бы протестировать компонент официанта так же, как мы тестировали компонент повара:
cook <- waiter <- test driver
Водитель-испытатель заказывал разные блюда и следил, чтобы официант вернул правильное блюдо. К сожалению, это означает, что этот тест компонента официанта может зависеть от правильного поведения компонента повара. Эта зависимость еще хуже, если компонент повара имеет какие-либо неблагоприятные для теста характеристики, такие как недетерминированное поведение (меню включает в себя сюрприз от шеф-повара как блюдо), много зависимостей (повар не будет готовить без всего своего персонала) или много ресурсы (некоторые блюда требуют дорогих ингредиентов или готовятся в течение часа).
Поскольку это тест официанта, в идеале мы хотим проверить только официанта, а не повара. В частности, мы хотим убедиться, что официант правильно передает заказ клиента повару и правильно доставляет еду повара клиенту.
Модульное тестирование означает независимое тестирование модулей, поэтому лучшим подходом было бы изолировать тестируемый компонент (официант) с помощью того, что Фаулер называет тестовыми двойниками (манекены, заглушки, подделки, имитации).
----------------------- | | в | повар-испытатель <- официант <- водитель-испытатель
Здесь повар-испытатель «в сговоре» с водителем-испытателем. В идеале тестируемая система спроектирована таким образом, чтобы тестируемого повара можно было легко заменить (внедрить) для работы с официантом без изменения производственного кода (например, без изменения кода официанта).
Теперь тестового повара (тестового двойника) можно реализовать по-разному:
- фальшивый повар - кто-то, кто притворяется поваром, используя замороженные обеды и микроволновку,
- тупой повар - продавец хот-догов, который всегда дает вам хот-доги независимо от того, что вы заказываете, или
- мнимый повар - полицейский под прикрытием по сценарию, притворяющийся поваром во время спецоперации.

См. статью Фаулера для получения более подробной информации о подделках, заглушках, подделках и манекенах, но пока давайте сосредоточимся на имитации повара.
----------------------- | | в | пародия на повара <- официант <- водитель-испытатель
Большая часть модульного тестирования компонента официанта сосредоточена на том, как официант взаимодействует с компонентом повара. Подход, основанный на имитации, фокусируется на полном определении того, что является правильным взаимодействием, и обнаружении, когда оно идет не так.
Мок-объект заранее знает, что должно произойти во время теста (например, какие вызовы его методов будут вызваны и т. д.), и фиктивный объект знает, как он должен реагировать (например, какое возвращаемое значение предоставить). Макет покажет, отличается ли то, что происходит на самом деле, от того, что должно произойти. Пользовательский фиктивный объект может быть создан с нуля для каждого тестового примера, чтобы выполнить ожидаемое поведение для этого тестового примера, но фиктивная среда стремится позволить четко и легко указывать такую спецификацию поведения непосредственно в тестовом примере.
Обсуждение фиктивного теста может выглядеть так:
водитель-испытатель с по притворяется поваром : ожидайте заказ хот-дога и дайте ему этот фиктивный хот-дог в ответ
водитель-испытатель (выдает себя за клиента) официанту : мне хот-дог, пожалуйста0218 : заказ: 1 хот-дог готов (отдает макет хот-дога официанту)
официант к водителю-испытателю : вот ваш хот-дог (отдает макет хот-дога водителю-испытателю)водитель-испытатель : ТЕСТ УСПЕШЕН!
Но так как наш официант новый, может случиться вот что:
водитель-испытатель с по притворяется поваром : ожидает заказ хот-дога и дает ему в ответ этот фиктивный хот-дог
Тестовый драйвер (позиция в качестве клиента) Официант : Я хотел бы хот -дог, пожалуйста,
Официант до Макет повара : 1 Hamburger Please
.сказали ожидать заказ хот-дога!
водитель-испытатель отмечает проблему: ТЕСТ НЕ ПРОШЕЛ! - официант изменил заказ
или
водитель-испытатель 9с 0218 по пародировать повара : ожидать заказ хот-дога и дать ему этот фиктивный хот-дог в ответ
Тестовый драйвер (позиция в качестве клиента) для Официанта : Я хотел бы ходить, пожалуйста
Официант до Масшет заказ: 1 хот-дог готов (отдает макет хот-дога официанту)
официант - водитель-испытатель : вот твоя картошка фри (дает картошку фри из другого заказа водителю-испытателю)Водитель-испытатель отмечает неожиданный картофель фри: ТЕСТ НЕ ПРОШЕЛ! официант вернул не то блюдо
Может быть трудно четко увидеть разницу между фиктивными объектами и заглушками без контрастного примера на основе заглушек, но этот ответ уже слишком длинный 🙂
Также обратите внимание, что это довольно упрощенный пример и что фиктивные фреймворки позволяют использовать довольно сложные спецификации ожидаемого поведения компонентов для поддержки комплексных тестов.
Существует множество материалов о фиктивных объектах и фиктивных фреймворках для получения дополнительной информации.
модульное тестирование - Что такое насмешка?
Другие ответы объясняют, что такое насмешка. Позвольте мне провести вас через это с различными примерами . И поверьте мне, это на самом деле гораздо проще, чем вы думаете.
tl;dr Это экземпляр исходного класса. В него вводятся другие данные, поэтому вы избегаете тестирования введенных частей и фокусируетесь исключительно на тестировании деталей реализации вашего класса/функций.
класс Фу {
func add (num1: Int, num2: Int) -> Int { // Строка A
вернуть num1 + num2 // Строка B
}
}
let unit = Foo() // тестируемый модуль
assertEqual (unit.add (1,5), 6)
Как видите, я не тестирую LineA, т.е. не проверяю входные параметры. Я не проверяю, являются ли num1, num2 целым числом. У меня нет возражений против этого.
Я только проверяю, работает ли LineB (моя реализация ) с фиктивными значениями 1 и 5 так, как я ожидаю.
Очевидно, что на самом деле это может быть намного сложнее. Параметры могут быть пользовательскими объектами, такими как «Персона», «Адрес», или сведения о реализации могут быть более чем одним + . Но логика тестирования останется прежней.
Без кодирования Пример:
Предположим, вы создаете машину, которая идентифицирует тип и торговую марку электронных устройств для службы безопасности аэропорта. Машина делает это, обрабатывая то, что она видит своей камерой.
Теперь ваш менеджер входит в дверь и просит вас провести модульное тестирование.
Затем вы, как разработчик, можете поставить перед ним 1000 реальных объектов, таких как MacBook Pro, Google Nexus, банан, iPad и т. д., и проверить, все ли работает.
Но вы также можете использовать имитацию объектов , например, идентично выглядящий MacBook Pro (без реальных внутренних частей) или пластиковый банан перед ним. Вы можете уберечь себя от вложений в 1000 настоящих ноутбуков и гниющих бананов.
Суть в том, что вы не пытаетесь проверить, поддельный банан или нет. Ни проверить, является ли ноутбук подделкой или нет. Все, что вы делаете, это проверяете, будет ли ваш компьютер, увидев банан, сказать , а не электронное устройство , а для MacBook Pro он скажет: Ноутбук Apple . Для машины результат ее обнаружения должен быть одинаковым для поддельной/фиктивной электроники и настоящей электроники. Если ваша машина также учитывает внутренности ноутбука (рентгеновское сканирование) или банана, то внутренности ваших макетов также должны выглядеть одинаково. Но вы также можете использовать MacBook, который больше не работает.
Если бы ваша машина была проверена, могут ли устройства включаться, тогда вам потребуются настоящие устройства.
Упомянутая выше логика применима и к модульному тестированию фактического кода. То есть функция должна работать так же с реальными значениями, которые вы получаете от реальный ввод (и взаимодействия) или поддельные значения , которые вы вводите во время модульного тестирования.
И так же, как вы избавляете себя от использования настоящего банана или MacBook, с помощью модульных тестов (и насмешек) вы избавляете себя от необходимости делать что-то, что заставляет ваш сервер возвращать код состояния 500, 403, 200 и т. д. ваш сервер запускает 500 только тогда, когда сервер не работает, а 200 — когда сервер работает. Поэтому вместо этого вы вводите/издеваетесь над ответом с кодом состояния 500, 200, 403 и т. д. и тестируете свой модуль/функцию с введенным/издевательским значением.
Имейте в виду:
Иногда вы неправильно имитируете настоящий объект. Или вы не издеваетесь над каждой возможностью. Например. ваши поддельные ноутбуки темные, и ваша машина точно работает с ними, но тогда она не работает точно с белыми поддельными ноутбуками. Позже, когда вы отправляете эту машину клиентам, они жалуются, что она не работает все время. Вы получаете случайные сообщения о том, что это не работает. Вам потребуется 3 месяца, чтобы понять, что цвета поддельных ноутбуков должны быть более разнообразными, чтобы вы могли надлежащим образом протестировать свои модули.
Для настоящего примера кодирования ваша реализация может отличаться для кода состояния 200 с возвращаемыми данными изображения и 200 с невозвращенными данными изображения. По этой причине хорошо использовать IDE, которая обеспечивает покрытие кода, например. изображение ниже показывает, что ваши юнит-тесты никогда не проходят строки, отмеченные brown .
источник изображения
Реальное кодирование Пример:
Допустим, вы пишете приложение для iOS и выполняете сетевые вызовы. Ваша задача — протестировать ваше приложение . Проверка/определение того, работают ли сетевые вызовы должным образом, НЕ ВАША ОТВЕТСТВЕННОСТЬ. Ответственность за его тестирование лежит на другой стороне (серверной команде). Вы должны удалить эту (сетевую) зависимость и при этом продолжать тестировать весь свой код, который работает вокруг него.
Сетевой вызов может возвращать различные коды состояния 404, 500, 200, 303 и т. д. с ответом JSON.
Ваше приложение должно работать для всех из них (в случае ошибок ваше приложение должно выдать ожидаемую ошибку). Что вы делаете с насмешкой, так это создаете «воображаемые — похожие на реальные» сетевые ответы (например, код 200 с файлом JSON) и тестируете свой код 9.0039 без «выполнение реального сетевого вызова и ожидание ответа вашей сети». Вы вручную жестко кодируете/возвращаете сетевой ответ для ВСЕХ видов сетевых ответов и смотрите, работает ли ваше приложение так, как вы ожидаете. (вы никогда не принимаете/тестируете 200 с неверными данными, потому что это не ваша ответственность, ваша ответственность состоит в том, чтобы протестировать ваше приложение с правильным 200, или в случае 400, 500, вы проверяете, бросает ли ваше приложение правильная ошибка)
Такое создание воображаемого, похожего на реальное, называется насмешкой.
Чтобы сделать это, вы не можете использовать свой исходный код (в вашем исходном коде нет предварительно вставленных ответов, верно?).
Вы должны что-то добавить к нему, ввести/вставить эти фиктивные данные, которые обычно не нужны (или часть вашего класса).
Таким образом, вы создаете экземпляр исходного класса и добавляете все, что вам нужно (здесь это сетевой HTTPResponse, данные ИЛИ, в случае сбоя, вы передаете правильную строку ошибки, HTTPResponse), что вам нужно, а затем проверяете издевался над классом .
Короче говоря, насмешка заключается в том, чтобы упростить и ограничить тем, что вы тестируете, а также заставить вас кормить то, от чего зависит класс. В этом примере вы избегаете тестирования сеть называет себя , а вместо этого проверяете , работает ли ваше приложение так, как вы ожидаете с введенными выходными данными/ответами --- имитируя классы
Излишне говорить , вы тестируете каждый ответ сети отдельно.
Теперь у меня всегда был вопрос: контракты/конечные точки и, в основном, ответ JSON моих API постоянно обновляются.
Как я могу написать модульные тесты, которые учитывают это?
Подробнее об этом: допустим, для модели требуется ключ/поле с именем имя пользователя . Вы тестируете это, и ваш тест проходит.
Через 2 недели бэкэнд меняет имя ключа на id . Ваши тесты все еще проходят. Правильно? или нет?
Ответственность разработчика бэкенда за обновление макетов. Должна ли быть частью нашего соглашения, что они предоставляют обновленные макеты?
Ответ на указанный выше вопрос таков: модульные тесты + ваш процесс разработки, поскольку разработчик на стороне клиента должен/должен отловить устаревший издевательский ответ. Если вы спросите меня, как? хорошо, ответ:
Наше фактическое приложение потерпит неудачу (или не потерпит неудачу, но не будет иметь желаемого поведения) без использования обновленных API... следовательно, если это не удастся... мы внесем изменения в наш код разработки. Что снова приводит к провалу наших тестов.... что нам придется исправить.
(На самом деле, если мы хотим правильно выполнить процесс TDD, мы должны не писать никакого кода для поля, если мы не напишем для него тест... и увидим, что он не работает, а затем напишем для него фактический код разработки.)
Все это означает, что серверная часть не должна говорить: «Эй, мы обновили макеты». ّПотому что все это часть процесса разработки! Хотя, если бэкенд предоставляет вам издевательский ответ, тогда это проще.
Вся моя точка зрения на это заключается в том, что (если вы не можете автоматизировать получение обновленного имитированного ответа API), вероятно, потребуется человеческое взаимодействие, т.е. руководство обновления JSON и короткие встречи, чтобы убедиться, что их значения актуальны. часть вашего процесса
Этот раздел был написан благодаря слабому обсуждению в нашей группе знакомств CocoaHead
Путаница:
Мне потребовалось некоторое время, чтобы не запутаться между «модульным тестом для класса» и «заглушками/моками класса».
'.
Например. в нашей кодовой базе у нас есть:
- класс Устройство
- класс DeviceTests
- класс MockDevice
- класс DeviceManager
-
класс Устройствоявляется фактическим классом. -
class DeviceTests— это место, где мы пишем модульные тесты дляDeviceclass -
класс MockDevice— это имитация класса устройства. Мы используем его только в целях тестирования. например если нашемуDeviceManagerнеобходимо получить модульно-тестированных , то нам нужны фиктивные/фиктивные экземпляры классаDevice.MockDeviceможно использовать для удовлетворения потребности в фиктивных/фиктивных экземплярах.
tldr вы используете фиктивные классы/объекты для тестирования других объектов. Вы не используете фиктивные объекты для проверки самих себя.
Только для разработчиков iOS:
Хорошим примером насмешки является доклад Наташи Мурашев «Практический протокол».
сказали ожидать заказ хот-дога!