Метод спока: Методика воспитания Бенджамина Спока. Читайте на портале Ya-roditel.ru

Содержание

Методика воспитания Бенджамина Спока. Читайте на портале Ya-roditel.ru

Доктора Бенджамина Спока называют реформатором. В 1946 году американский педиатр выпустил книгу «Ребенок и уход за ним», ставшую бестселлером и перевернувшую представление родителей о воспитании детей. О методиках Спока до сих пор спорят. Так в чем же их суть и за что мамы со всего мира так любят книги американского доктора?

Основные принципы Спока

«Ребенок – не черновик человека», — именно это заявление лежит в основе методики воспитания Бенджамина Спока. Он всегда пытался донести до родителей простую мысль: каждый малыш – личность, мнение которой нужно уважать, именно поэтому доктор в первую очередь призывает не наказывать детей, а договариваться с ними.

«В тот момент, когда вы даете понять ребенку, что он самый исключительный малыш на свете, это насыщает его дух тем же образом, что и молоко — его тело», — говорит доктор.

Иными словами, любовь – основа всего воспитательного процесса, и нужно постоянно демонстрировать малышу эту любовь.

Детей в возрасте до трех месяцев, по совету доктора Спока, надо чаще брать на руки – убаюкивать, ласкать, часто пеленать. Сегодня эту позицию оспаривают многие психологи, но американский педиатр был уверен: малыш вырастет послушным только в том случае, если будет в этот период развития физически чувствовать близость с родителями.

Когда же ребенку исполняется три месяца, его психика меняется. По мнению Спока, в этом возрасте малыша нужно начинать приучать к самостоятельности – оставлять одного в кроватке, учить засыпать без родителей, кормить не по часам, а тогда, когда ребенок просит есть. При этом очень важно уметь отличать желания и потребности детей от капризов. По мнению Спока, желания надо уважать и удовлетворять, а капризы – игнорировать. «Хочу играть», — это желание, «Хочу играть такой же точно куклой, как у соседской девочки, поэтому купи мне ее», — это уже каприз.

А еще Спок уверен, что детям не стоит запрещать слишком много. Если ребенок раскидывает пуговицы по дому, то, вероятно, он создает из них какой-то свой сказочный мир, и препятствовать этому – тормозить развитие фантазии и воображения у ребенка. Запрещать нужно лишь то, что в самом деле опасно – перебегать через дорогу на красный свет, подходить близко к огню, смотреть страшные фильмы перед сном. Если же окружить ребенка сплошь запретами, то, повзрослев, он продолжит запрещать себе многие вещи, и это негативно скажется на развитии личности ребенка.

Самый же сложный возраст, по мнению Спока, начинается у ребенка в три года – именно в этот период малыш начинает проявлять негативные черты характера, в том числе – упрямство.

Как успокоить ребенка, если он плачет?

Критики теории Спока осуждали американского доктора за то, что тот, якобы, учил родителей не обращать внимание на детские слезы. На самом же деле, Спок разработал целую систему советов, как стоит успокаивать ребенка, когда причиной слез становятся капризы и упрямство, а не потребности, но при этом сделать это так, чтобы замечания не были похожи на запреты.

Вот лишь несколько из предложенных доктором вариантов.

Придумать важное дело, ради которого стоит отложить плач: «Давай ты потом поплачешь, а то скоро стемнеет и мы не успеем сходить в магазин».

Предложить плакать тише, чтобы не разбудить папу, бабушку или даже котика.

Попробовать отвлечь ребенка от каприза и, не обращая внимания на слезы, предложить попить чая или посмотреть, как распускаются листочки на деревьях. Еще один хороший способ – переключить внимание малыша на что-то другое: «У тебя ресничка выпала, давай, ее уберем, а то она мешает плакать».

Проговорить вслух проблему из-за которой ребенок плачет: «Я понимаю, что ты расстроился из-за того, что мы не купили тебе машинку, но купить ее сейчас мы не можем».

Предложить лекарство от плохого настроения. Таким лекарством может быть любая вкусная мелочь – мармеладка, печенька. Главное, чтобы ребенок понимал: если лекарство не поможет, ему его больше не дадут, тогда он будет вынужден подыгрывать и успокаиваться.

Методики развития Бенджамина Спока

Помимо принципов воспитания, доктор Спок разработал и несколько методик развития ребенка. Вот несколько игр, предложенных Споком. Их, к слову, активно используют во многих развивающих центрах.

Развитие зрительной памяти

Предложите ребенку порисовать вместе с ним. Нарисуйте двор, домик, кошку на окне, дым из трубы, собачку в будке, а потом предложите малышу повторить рисунок. Важно, чтобы он вспомнил и отобразил как можно больше деталей – и собачку, и дым, и кошку. Если у него это не получилось, то вместе поищите ошибки и потом дорисуйте картинку.

Развитие слуховой памяти

Постоянно предлагайте ребенку отгадывать, что за звук раздался рядом с ним: мама хлопнула дверцей духовки или холодильника, мама включила фен или миксер. Ребенок таким образом научится внимательно слушать окружающие звуки, концентрироваться на них и будет лучше воспринимать звуковую информацию.

Развитие речи

Чтобы развить речь ребенка, Спок предлагает простейший метод – просто чаще с малышом разговаривать. Чем богаче и красноречивее будет речь родителей, тем лучше будет разговаривать ребенок.

В присутствии малыша маме и папе следует вслух комментировать все свои действия: «Сейчас мы почистим картошечку, сварим ее, приготовим из нее пюре, вот берем первую картофелину – красивая, круглая». Со стороны это, возможно, выглядит странно, но ребенок таким образом запоминает все, что говорят родители.

Развитие тактильной памяти

Развитие мелкой моторики – залог правильного развития ребенка. По крайней мере, именно так считал доктор Спок и предлагал очень простую игру: в миску с крупой нужно спрятать всякие мелкие предметы и предложить малышу отыскивать их и угадывать, не вынимая. В этот момент мама может что-то готовить и заниматься своими делами на кухне, ребенок же при этом будет занят, увлечен, и при этом будет тренировать мелкую моторику.

Хорошая речь, зрительная память, способность быстро воспринимать информацию на слух – вот основные качества, которые необходимо развить в ребенке, по мнению доктора. При этом проявлять любовь, но не ограничивать малыша в самостоятельности и не окружать запретами. Все это поможет избежать проблем с воспитанием ребенка. Проведя собственное исследование, Спок заметил, что послушные дети болеют реже, чем непослушные, а непослушными они становятся от того, что им не хватает любви и внимания.

Юлия Шершакова

Доктор Спок, или Как мы учимся не волноваться – Weekend – Коммерсантъ

14 июля 1946 года вышла книга американского педиатра Бенджамина Спока «Ребенок и уход за ним», открывшая новую эпоху в науке воспитания и ставшая одним из главных символов беби-бума. Она и до сих пор остается самым популярным практическим пособием для молодых родителей: только в англоязычных странах разошлась тиражом в 50 миллионов экземпляров, а переведена еще на 40 языков. И все же главная заслуга книги заключается не в том, что в ней даны ответы на 779 вопросов (в конце концов, по поводу вопроса «на спине или на животе» и спустя 70 лет ведутся живейшие профессиональные дискуссии), а в том, что она вернула воспитание детей родителям. Не существует никакого единственно правильного способа растить детей — вернее, он очень простой: ребенка нельзя бить. Не нужно паниковать и сводить себя с ума десятками противоречащих друг другу методик. Доверять себе и своему ребенку, одним словом — успокоиться. К юбилею книги, вырастившей под этим девизом четыре поколения детей, Ульяна Волохова изучила 10 педагогических бестселлеров, которые теперь все чаще пишут именно родители, и выяснила, как — если не уговорами доктора Спока — им удается сохранять спокойствие. Если им удается.

 


«Краткое руководство по воспитанию малышей», 1992Аксель Хаке (журналист, Германия)
4 детей


Чтобы растить детей, необходимо иметь крепкие нервы. Постарайтесь закалить свои нервы. Посещайте лекции и прочие вечера, где показывают слайды, научитесь притворяться, проявлять к этой скучище самый живой интерес. Навык очень пригодится, когда малыш на лопатке принесет из песочницы некую коричневую кучку и сунет ее вам под нос: «Смотри, что я слепил». Возьмите себе за правило ездить в час пик на метро, в электричке! А еще ворвитесь в толпу фанатов родимой «Баварии», размахивая черно-желтым флагом дортмундской «Боруссии»!

Аксель Хаке несколько лет вел колонку для газеты Sueddeutsche Zeitung, в которой рассказывал о том, как растут его дети: дерутся, плюются, влюбляются, отстаивают свои интересы, достают конфеты с якобы недоступной полки, какие сказки рассказывает им он и какими историями и прибаутками делятся с ним они. В 1992 году около 30 этих текстов вышли отдельной книгой. Здесь есть отчеты о результатах анекдотичных педагогических экспериментов (в прогрессивной борьбе со стереотипным поведением посадить сына играть в куклы, а дочь в машинки, и наблюдать, как они немедленно поменяются игрушками), и философские размышления о смысле уборки, и душераздирающие истории о человеке, который преодолел в машине с тремя детьми путь до места отпуска и обеспечил себе две пожизненные фобии (страх дороги и вопроса «а когда мы приедем?»), и довольно мрачная статистика, например о гарантированном количестве часов недосыпа (на момент написания книги результат Хаке — 421 час). В общем, «Краткое руководство по воспитанию малышей» ничем не руководит, и единственное, за что готов ручаться его автор,— с детьми очень интересно, весело, сложно, но абсолютно выживаемо: главное, поменьше воспитательных практик, все равно окажется, что дети авторитарнее самого авторитарного родителя и сломают любую систему шантажом, подкупом или слезами.

Санкт-Петербург: Поляндрия, 2013

 


«Французские родители не сдаются», 2013 Памела Друкерман (журналист, США)
3 детей

Это вторая книга Друкерман о подсмотренной во Франции системе воспитания, вышедшая вслед за крайне успешной «Французские дети не плюются едой» — автобиографическим романе о том, с чем столкнулась американская семья с тремя детьми после переезда во Францию, чему захотела и смогла научиться и что из этого вышло. На этот раз Друкерман не пускается в воспоминания и рассуждения и не тратит время на сомнения, сравнивая две педагогические традиции. Она свой выбор сделала и теперь формулирует 100 бодрых советов о том, как научить ребенка любить брокколи и отучить от сладкого, что нужно делать, чтобы он был вежлив, и насколько пристально за ним нужно следить на прогулках. Собственно рекомендация тут одна — она, по мнению Друкерман, и стоит во главе всего французского воспитания: нужно видеть в ребенке рационально мыслящее существо, которое вполне способно понять, почему нельзя есть торт на завтрак, а конструктор после игры нужно убрать в коробку. Просто это нужно объяснять и показывать, и со временем ребенок научится сам делать выводы.


Жизнь французской семьи во многом протекает спокойно именно потому, что родители придают особое значение терпению, считая его важнейшим элементом воспитания. Они не рассматривают умение ждать желаемого и справляться с разочарованиями как некий дар, которым ребенок может быть наделен (или нет) от природы. Они с пеленок учат малышей терпению точно так же, как потом будут обучать езде на велосипеде.

Москва: Синдбад, 2014

 


«Приключения другого мальчика. Аутизм и не только», 2014 Елизавета Заварзина-Мэмми (биолог, Россия)
2 детей

«Приключения другого мальчика. Аутизм и не только» Елизаветы Заварзиной-Мэмми — очень важная книга о том, как в одной семье рос и вырос мальчик Петя с расстройством аутического спектра. Важная — во-первых, потому что это вообще один из первых текстов, подробно описывающих жизнь, которой почти никто не видит, которой как будто не существует, и делающих возможным публичный разговор о проблеме аутизма. «Приключения мальчика» начинаются с самого его рождения в 1989 году в одном из московских роддомов, а потом у его родителей возникают первые догадки, что он развивается не так, как другие дети, а потом — тьма врачей и специалистов, и одни говорят, что все будет хорошо, а другие — что хорошо не будет. А потом родители пытаются понять, что вообще происходит, и принимают твердое решение бороться — и добиваются первых побед. Это очень важная книга еще и потому, что подробно рассказывая о все новых и новых методиках — иппотерапии, коррекции поведения, лекарственной терапии и т. д.,— она в первую очередь рассказывает о семье: о родителях и двух их детях, которые вместе пережили тысячи страшных, веселых, изматывающих, грустных моментов, из которых вынесли одну жизнеутверждающую мысль — и она тоже очень важная: ничего окончательного не бывает, всегда есть возможность двигаться вперед.


На входной двери нашего дачного дома появилась табличка с надписью: «Мы занимаемся, просьба не беспокоить». Поля во всем участвовала наравне с нами, и ее приятели быстро выучили, что бесполезно маячить за воротами или звать ее гулять, пока мы не закончили занятия. И скоро они сами с удовольствием помогали «крутить Пете голову» (делать паттернинг). Мы ползали, ползали, ползали, бегали, бегали, бегали, а все остальное время занимались интеллектуальными программами, которые были главным развлечением и отдыхом. Иногда вечером мы позволяли себе полчаса пройтись по лесу.

Москва: Corpus, 2014

 


«Родители без границ», 2013 Кристина Гросс-Ло (журналист, США)
4 детей

Кристина Гросс-Ло, родившаяся в США дочь корейских иммигрантов, обзаведясь собственными детьми, на несколько лет переехала в Японию, и здесь, как когда-то ее родители, неожиданно ощутила, каково это — со своими устоявшимися педагогическими идеями, привычками и уловками оказаться в чужой среде. Японские родители недоумевали из-за огромного количества игрушек, из-за того, что любое детское желание она ставит на первое место, не отпускает детей от себя, а если отпускает — мучается чувством вины. Осознав, что различия между культурными традициями особенно ощутимы, когда они обнаруживаются в мелочах, касающихся воспитания, Гросс-Ло поехала в Финляндию, Китай, Южную Корею, Германию, а вернувшись в США, познакомилась с иммигрантами из 12 стран — и все это с одной целью: доказать, что проблемы, с которыми сталкиваются семьи с детьми во всем мире, можно решать по-разному, но лучше — как-нибудь сообща. Родители из Японии, Швеции, Дании, Гватемалы, США, Тайваня и других стран отвечают на сотни вопросов: как лучше организовать сон (не только ребенка, но и свой), где гулять, когда учить, как кормить, чем кормить и сколько все-таки игрушек достаточно. Все самые полезные, на ее взгляд, находки Гросс-Ло включила в книгу — и, кажется, учла все разумные точки зрения.


Я неожиданно для себя поняла, что чем меньше вещей присутствует в жизни ребенка, тем он спокойнее. Как-то раз я была на долгом торжественном вечере, куда некоторые семьи пришли с маленькими детьми; для того чтобы их занять, хватило нескольких листов для оригами.

Москва: Синдбад, 2014

 


«Боевой гимн матери-тигрицы», 2011 Эми Чуа (юрист, США)
2 детей

Эта книга и дискуссия вокруг нее удостоились обложки журнала Time, но сначала ее автора не просто раскритиковали за авторитарный подход к воспитанию, но обвинили в жестокости и едва ли не в насилии по отношению к детям. «Боевой гимн матери-тигрицы» — не пособие и даже не антипособие по воспитанию, а откровенный, трезвый, горький и местами провокационный рассказ об одном педагогическом опыте, а точнее, о том, как она, дочь китайских иммигрантов и жена американского профессора-еврея, растила своих дочерей. Для начала (а для матери-тигрицы это означает «раз и навсегда») она решила, что обязана не допустить, чтобы ее дочери выросли слабовольными американками среднего класса, и главное оружие в этой борьбе — китайские традиции: воспитание трудолюбия, целеустремленности и занятия академической музыкой. В итоге это решение обернулось противостоянием с младшей дочерью, в котором воплотился вечный конфликт между старым и новым, отцами и детьми, Востоком и Западом и просто между разным. Главный урок Эми Чуа, в котором одновременно заключено и главное утешение,— чьей бы победой ни заканчивалось большое или маленькое сражение со своим ребенком, важно понимать, что чем настойчивее он старается отличаться от своих родителей (а он обязательно будет стараться), тем более похожим на них становится.


Счастье — это не та концепция, на которую я привыкла опираться. Китайское воспитание со счастьем никак не связано. Это меня всегда беспокоило. Когда я вижу мозоли от фортепиано и скрипки на пальцах своих дочерей или отметины от зубов на клавишах, меня порой охватывают сомнения

Москва: Corpus, 2013

 


«Отцовство», 1992 Михаил Эпштейн (культуролог, литературовед, Россия)
4 детей

«Отцовство» Михаила Эпштейна — не совсем книга о воспитании: в ней нет советов или рецептов о том, как объяснить что-то ребенку или научить его чему-нибудь. Этот «роман-дневник», собранный из записей первого года жизни первой дочери, описывает изумление отца, который видит в рождении ребенка сотворение мира, а в его взрослении — путь всего человечества «от эпической фазы к исторической». Попытка понять и зафиксировать свои новые чувства превращается у Эпштейна в новое прочтение всей мировой философии и литературы, и первый зуб девочки Оли рождает мысли не менее важные, чем Евангелие или «Станционный смотритель». Опыт пристального внимания — тоже своего рода воспитательная тактика и одновременно способ научиться уважать в ребенке отдельного человека и справиться с главным разочарованием родительства: с каждой прожитой минутой ребенок становится все более независимым — и в родительской любви постепенно, но неизбежно пропадает право собственности.


Теперь, когда ты стала догонять нас, я впервые заметил, как часто мы тебя покидаем. Пока ты не умела ползать, мы не знали твоего постоянного желания быть с нами и, уходя, спокойно оставляли одну, не подозревая, что душа твоя рвется вслед, как сейчас устремляешься за нами ты сама. Да и теперь наша занятость позорно не соответствует той радости, с какой ты подползаешь к нам . Кажется, ты научилась нас догонять лишь для того, чтобы твердо усвоить: мы все равно тебе не принадлежим, даже когда ты рядом с нами.

Москва: Никея, 2008

 


«Путь дельфина. Как вырастить счастливых и успешных детей, не превращаясь в мать-тигрицу», 2014 Шими Канг (психолог, психиатр, Канада)
3 детей

Шими Канг написала книгу, которая должна была стать лекарством от шока после публикации «Боевого гимна матери-тигрицы». В качестве альтернативы методу Эми Чуа она предложила свой, в котором место идеального родителя занимает не тигр, а дельфин, а вместо авторитарности и жесткого контроля — авторитетность и игра. Канг — успешный психолог и психиатр, специализирующийся, в частности, на подростковой самомотивации, и проблемы родителей она разбирает на вполне обычном примере своей семьи (в которой, разумеется, не обошлось без периода тотального контроля в стремлении достичь всего — разностороннего развития, успешной карьеры, побед, побед и еще раз побед) и довольно экстремальных примерах своих пациентов: сын запирает собственную мать в подвале, чтобы хотя бы один вечер не играть на фортепиано; девочка-подросток перестает разговаривать с родителями; подающий надежды гольфист скрывает от всех панические атаки. Важные приемы в воспитании, по мнению Канг: не заставлять детей делать что-то, а просто вести их в правильном направлении, дать им возможность совершать ошибки — и одновременно создать безопасную среду, быть великодушным, но определять границы дозволенного. И еще — помногу пить, спать и играть.


Я всегда с разочарованием вспоминаю свои первые шаги в материнстве, те моменты, когда дело касалось игры с детьми. Интуитивно я понимала, что игра — это очень важно, но тем не менее позволяла «тигру» стоять у себя на пути. К счастью, как мама троих детей, работающая круглые сутки, я была рассеянным тигром, поэтому они могли спокойно играть за моей спиной.

Москва: Альпина нон-фикшн, 2015

 


«Рожденный читать. Как подружить ребенка с книгой», 2014 Джейсон Буг (книжный обозреватель, США)
2 детей

Книга Джейсона Буга — сборник квалифицированных советов, как приучить ребенка к книгам и чтению буквально с пеленок, и рассказ о том, как пережить все детские кризисы — от бессонных ночей из-за колик и режущихся зубов до приучения к горшку и первого дня в детском саду — с книгой под мышкой. Весь этот путь он прошел вместе со своей дочерью Олив, убеждаясь в бессмысленности одних методик и теорий и действенности других, в том, что иногда детям интереснее какая-нибудь пустая яркая книжка, а не классика детской литературы,— и это нормально; что совсем удержать ребенка от планшетов и компьютеров не получится, но нужно как можно дольше откладывать эту встречу и приучать к рациональному использованию новых технологий. Впрочем, как и во всех прочих вещах, которые родители стремятся привить своим детям, их любви к чтению больше всего остального способствует родительская любовь к книгам и желание поделиться миром литературы с другими.


К этому моменту, в совершенстве овладев искусством убаюкивания, я оснастил свою сказку сигналами, что пора спать. «Спокойной ночи, Боб Дилан, спокойной ночи, Кот в шляпе»,— сказал я, а потом добавил: «Спокойной ночи, Олив!», поцеловав ее в макушку. Я начал дрейфовать в сторону двери, как вдруг Олив снова меня удивила.

«И тут раздался стук в дверь!» — вскричала она, совершенно самостоятельно продолжая историю с помощью приема, которым рассказчики пользуются не первое столетие.

Москва: Альпина нон-фикшн, 2015

 


«Я плохая мать?», 2015 Екатерина Кронгауз (журналист, Россия)
2 детей

Книга Екатерины Кронгауз выросла из ее колонок на сайте Snob.ru и в журнале «Афиша», в которых она рассказывала истории о своих сыновьях и рассуждала о воспитании вообще. Полное название книги — «Я плохая мать? И 33 других вопроса, которые портят жизнь родителям», и здесь есть какая-то ошибка, потому что вопросов она задает миллион: что делать, когда нет няни, как жить, когда в доме бабушка, что видно на семейных снимках в инстаграме и чего на них не видно, почему дети такие разные — и взрослые люди тоже, нужно ли звонить педиатру ночью, можно ли провести десять часов в самолете с двумя детьми и сотней других ни в чем не повинных пассажиров и не умереть от стыда, чему может научить ребенка человек без высшего образования и на что он вообще рассчитывал, как не обижать мужа, как не обижаться на мужа, купить игрушку, оставить без игрушки, как взять на руки Леву, если в одной руке Яша, а в другой — сумка, принять решение, дать возможность ошибиться или лучше все-таки ошибиться самой, что значит, когда ловишь себя на том, что больше не понимаешь, кто ты и как оказалась в той точке, когда все в порядке, но ты не знаешь ответа ни на один вопрос. Оказавшись в такой точке, Кронгауз написала книгу, читая которую, задаешься еще одним вопросом — каким образом, не получив ни одного твердого ответа, ты и в самом деле перестаешь бояться и живешь дальше.


Мало что на свете можно сделать ради детей, кроме как сесть с этими детьми на карусель и качаться до умопомрачения или на спор съесть три коробки мороженого, ради детей можно покрасить стены фломастером и напоследок отодрать кусочек обоев. Все остальное люди делают для себя: и волнуются, и мучают друг друга, и себя, и детей, и уезжают, и возвращаются, и трусят, и безумствуют.

В общем, я ради детей перестаю нервничать и думать о том, как вырастить их счастливыми. И ради детей собираюсь получать удовольствие от себя, жизни и от них. Почему ради детей? А почему нет?

Москва: Corpus, 2015

 


«Ваши внуки. Как стать настоящими друзьями», 2009 Элизабет Ла Бэн (писатель, журналист, США), 2 детей
Барбара Тростлер, бабушка, 2 внуков
Майрон Ла Бэн, дедушка, 6 внуков

Книга «Ваши внуки» написана Элизабет Ла Бэн после рождения двоих детей, в соавторстве с ее матерью Барбарой Тростлер и свекром Майроном Ла Бэном,— а точнее, почти целиком записана ею с их слов. Такому сотрудничеству можно только позавидовать, поскольку только так можно ответить на вопросы, перед которыми оказались бессильны десятки других авторов: какие подводные камни и сложности могут возникнуть в простом и естественном деле — быть бабушкой или дедушкой. Бодро начав со здравого соображения, что раз уж у вас появились внуки, значит, с детьми вы точно имели дело, Барбара Тростлер и Майрон Ла Бэн тем не менее не пускают дело на самотек и напоминают, как пеленать, кормить и вообще обращаться с младенцем, рассказывают о безопасном для детей пространстве, о том, чем заняться и накормить уже подросшего ребенка,— и все это с дотошностью и интонацией, достойными доктора Спока. На самом же деле главная мысль, скрытая за десятками кулинарных рецептов и идей для игр, довольно проста: вырастив детей, нужно позволить им вырастить своих, а значит — стараться не подрывать авторитет родителей, советоваться с ними, прежде чем дать лекарство заболевшему в вашем доме внуку, не воспитывать его за спиной матери и отца, но использовать, например, даже непедагогичный подкуп, когда нужно унять неожиданную истерику. А также помнить, что лучший подарок вернувшимся домой из роддома родителям с младенцем — куриный суп.


Чем безопаснее будет ваш дом, тем удобнее и легче будет вам и вашим внукам проводить время вместе. Готовя дом к присутствию в нем ребенка, положитесь на инстинкты. Просто встаньте на четвереньки и медленно ползите по дому, стараясь смотреть на все окружающее с точки зрения малыша.

Москва: Альпина нон-фикшн, 2014


Метод Спока: уложить в кроватку и уйти | Мамоха

Первые 3 месяца после рождения — это период донашивания. Не зря его называют 4 триместром. Новорожденный малыш сменил среду обитания, но он по прежнему очень беспомощен. Без взрослого человека, который будет о нем заботиться, грудничок не выживет.

Само собой новорожденный младенец не обладает навыком самоуспокоения. Чтобы заснуть ему требуется помощь взрослого человека. И он своим криком зовет маму, чтобы она пришла и прогнала всех «монстров» (помогла справиться с новыми ощущениями, помогла успокоиться и заснуть).

Малыш помнит, что чувствовал, когда находился в мамином животике. Защищенность, тепло, мамин голос и звук ее сердцебиения — этого достаточно, чтобы ему стало лучше. Поэтому новорожденные малыши так любят спать на руках.

После роддома сразу в свою комнату

Я против такого по нескольким причинам.

1. И самое главное — это не безопасно. Есть такое явление, как СВДС. Лучшей профилактикой является сон рядом с мамой в приставной кроватке без бортиков, без одеяла. Малыш слышит дыхание мамы и это помогает ему не сбиться с собственного. Плюс если что-то пойдет не так, мама будет рядом и услышит ворчание или шорохи, все то, что она может не расслышать даже, если будет включена радионяня. Да, пусть таких случаев не очень много. Но они есть. Свести риски к минимуму — это все, что можно сделать.

2. Уйти, оставив грудничка орать, и ждать, когда он сам заснет — это жестоко. Это равносильно тому, как бросить трехлетку на середину озера, чтобы он научился плавать. Есть методики обучения самостоятельному засыпанию, которые предполагают плач ребенка. Но их применение целесообразно не раньше 6 месяцев. Когда есть некие ориентиры, которые помогают малышу заснуть: есть четкий режим снов, есть ритуал на засыпание, малыш понимает, что от него требуется в данный момент, есть навыки самостоятельного успокоения и т.п. У новорожденного ребенка этого всего нет. Он вообще еще немного в космосе и не понимает, когда пришло время спать, а когда играть. Нервная система еще не созрела до того уровня, чтобы ребенок мог успокоиться самостоятельно. Если его оставлять в комнате одного, конечно, малыш рано или поздно перестанет орать и уснет. Но уснет не потому, что он вдруг понял, как нужно успокаиваться. Уснет по причине того, что просто кончатся силы, уйдет на перезарядку. Через некоторое время привыкнет, что его бросают одного, орать больше не будет. Возможно не будет. Можно много спорить про влиянии такого способа засыпания на психику, на развитие ребенка, на формирование привязанности и прочего. Но прежде всего необходимо понять, какую цель преследуют родители, которые так оставляют ребенка одного? Потому что есть много других, более щадящих способов, чтобы уложить грудного ребенка спать. Как и другие способы научить трехлетку плавать.

3. Если вдруг вам повезло и малыш спокойно спит самостоятельно с самого рождения и не требует дополнительную помощь, то в любом случае первый пункт никто не отменял. Пусть также спокойненько спит в своей кроватке только не далеко от вас;) А переселение в соседнюю комнату можно немного отложить, хотя бы до года. Но специалисты не рекомендуют переселять ребенка раньше 3-х лет.

А у вас малыш спит в комнате с вами или отдельно?

Благодарю за лайки и комментарии! Подписывайтесь на канал и читайте другие мои статьи;)

как Монтессори, Аткинс и Карр опровергли собственные советы – Москва 24, 11.02.2016

Фото: YAY/ТАСС/Alistair Scott

На днях мировую паутину всколыхнула новость: житель Флориды был приговорен к пожизненному заключению за убийство жены. Криминальная сводка затерялась бы втуне, если бы не одна пикантная деталь, выбивающая ее из череды подобных: убийцей признан известный американский эксперт в области семейных отношений Дерек Медина, написавший книгу «Как я сохранил жизнь, брак и семью с помощью общения». Видимо, что-то в жизни Дерека пошло не так…

Редакция m24.ru решила вспомнить, кто еще из адептов здорового образа жизни, семейного счастья, идеального воспитания детей и вселенского благоденствия собственным примером перечеркнул свои же постулаты.

Бенджамин Спок

На книге этого американского педиатра, изданной в 1946 году, выросло не одно поколение советских детей. Детский врач, поставивший во главу угла психологию, совершил переворот в сознании родителей. Спок учил слушать и слышать ребенка, обращать внимание на его эмоции, быть чутким и терпимым к различным возрастным кризисам. Это сегодня многие рекомендации доктора кажутся, мягко говоря, странными, а подчас и чересчур строгими. В частности, совет позволять новорожденному проораться, не реагируя на его крик, давно опровергнут современными врачами и педагогами. Но в свое время книга действительно произвела революционный сдвиг. Вместо наказаний, ограничений, запугиваний на первое место вышла любовь к детям.

Однако в своей семье Бенджамин Спок не смог следовать собственным правилам. У него было два сына: Майкл и Джон, и с обоими он не выстроил доверительных отношений. Более того, Майкла он даже бил, когда тот не мог освоить школьную программу. У мальчика была дислексия и прочие особенности развития, поэтому со временем Спок, осознавший, что его методы не приносят плодов, просто устранился от воспитания сына. Позже родители отдали Майкла в специнтернат.

С Джоном отец тоже не смог найти общий язык. Видя непрекращающиеся конфликты в доме, жена Спока решила их прервать: «Поучайте чужих детей, господин Бог!»

Фото: wikimedia.org

Мария Монтессори

Пожалуй, на сегодняшний день в столице нет более востребованных методик раннего развития, чем те, что создала итальянский педагог и философ Мария Монтессори. По всей Москве пестрят вывески детских клубов, где неизменно фигурирует это зарубежное имя. Монтессори придумала уникальную систему, позволяющую обучать ребенка без давления на его психику. Главное – создать среду, которая даст возможность раскрыть все таланты малыша. А вот личная жизнь у Марии сложилась вразрез с ее правилами.

Монтессори родила сына Марио в 1898 году в Риме, ей было 28 лет, и она уже пропагандировала свои методики. Отец ребенка сразу отказался от него. Незаконнорожденный младенец ставил крест на карьере женщины, добившейся права работать врачом. Монтессори, взвесив личное счастье и профессиональную состоятельность, приняла решение сдать сына в семью кормилицы, а затем перевела его в школу-интернат. Она выделяла деньги на обучение мальчика, но не навещала его.

Марио приехал к матери, когда ему было 17. Спустя некоторое время педагог включила сына в свое дело, они вместе преподавали, но, тем не менее, мать так и не признала сына официально.

Фото: wikimedia.org

Аллен Карр

Самый известный в мире борец с курением, автор бестселлера о том, как победить вредную привычку, в 2006 году умер от рака легких – болезни, считающейся возмездием для любителей табака.

В книге, изданной миллионными тиражами, Карр пошагово описал, что делать тем, кто хочет завязать с никотиновой зависимостью. Советы Карра работают: бросившие курить бесконечно благодарны ему за возможность больше не думать о сигаретах.

Но, несмотря на то что 23 года американец провел в борьбе с табаком, сам он скончался от рака легких. Однако, узнав о своем заболевании, сказал, что ушел бы на тот свет гораздо раньше, если бы не перестал курить.

Фото: facebook.com/AllenCarr

Роберт Аткинс

Врач-диетолог из США, автор популярной во всем мире системы питания, основанной на пониженном употреблении углеводов, Роберт Аткинс умер от… ожирения. Правда, в официальных медицинских бумагах значится, что он погиб от удара головой. Но это не противоречие, а причина и следствие. Аткинс, весивший 116 килограммов, страдал сердечным заболеванием, свойственным многим тучным людям. Выйдя из дома, он почувствовал себя нехорошо, потерял равновесие, упал на асфальт, ударился головой, впал в кому и умер.

Причину смерти долго скрывали: оно и понятно, диета покорила весь мир, маркетологи делали на ней большие деньги, новая информация могла сразу отсечь часть ее приверженцев. Когда тайное стало явным, родственники Аткинса заявили, что до больницы он весил меньше, около 90 килограммов, а в клинике врачи накачали его лекарствами, но документальных подтверждений эта версия не нашла.

Фото: wikimedia.org

Чхве Юн Хи

63-летняя телеведущая из Южной Кореи Чхве Юн Хи, автор книг о счастье, надежде и о том, что надо идти вперед, невзирая на обстоятельства, покончила с собой. Вместе с супругом она повесилась в номере недорогого мотеля.

Женщина написала более 20 книг, каждая из которых воспевала радость жизни. Чхве Юн Хи призывала к всеобщей гармонии, внутреннему свету, покою и способности принимать этот мир. И вдруг на фоне такого оптимизма – суицид. Писательница оставила предсмертную записку, где написала, что больна и дела ее плохи. Однако, если следовать основным посылам ее книг, даже такая непростая ситуация не должна была спровоцировать человека на последний шаг. Советовавшая принять и полюбить мир писательница справиться с этой задачей не смогла.

Фото: krfilm.net

Ссылки по теме

Спите спокойно. Как научить ребенка засыпать самостоятельно, Эдуард Эствиль — «31.07.15 г. Обновление.Таки да, мы научились засыпать самостоятельно и даже плавно закончили ГВ. НО! Невероятный Эстивиль: шаг назад! + цитаты и ссылка на книгу + опровержение метода от Эстивиля. Обновила: опыт с 10 месяцев до трех лет»

Сон – очень важная часть жизни малыша и всей его семьи. Как говорится, во сне детки растут. А очень многие дети засыпают тяжело, часто просыпаются по ночам (это наш случай), иногда не спят по несколько часов.

 

Доктор Эстивиль, испанский доктор, специалист по нарушениям сна – автор книги «Спите спокойно». Кстати сказать, книга впервые вышла в свет давно, аж 1996 году.

 

Суть книги – научить ребенка спать самостоятельно. Каким образом? Методом ингорирования детского плача. Метод не нов, о нем писал доктор Спок (уж он-то лучше всех знал как воспитывать детей). Подобный метод используется во всех домах малютки, там деток никто не пестует, им приходится спать.

 

Не буду приводить всю книгу (читать здесь), остановлюсь на некоторых моментах:

 

К детям какого возраста применим метод?

 

Лично для меня – это нечто нереальное, чтобы деть спал всю ночь.

 

Если прочитать книгу и применить методику, что получится из этого?

 

Как должны спать и засыпать малыши?

 

Что нельзя делать?

 

Как научить малыша засыпать?

 

Данная мысль – создать СВОЙ ритуал – мне кажется очень правильной, ведь малыши любят рутины, их не радуют неожиданности.

 

Далее укладываем ребенка спать и выходим из комнаты. А заходим через промежутки времени, указанные в следующей таблице:

 

Данный способ укладывания нужно применять и днем и ночью, доктор Эстивиль обещает, что ребенок научится засыпать и спать за 3-4 дня.

________________________________________________________________________________________

 

КАК МЫ СПАЛИ.

В первые два месяца, сыночка можно было покормить и положить в кроватку, немножко похлопав глазками, он засыпал. Ближе к двум месяцам мог побуянить вечерами, но ночами спал. Правда, просыпался каждые два-три часа, мы были на ГВ по требованию. Я ребенка кормила, затем перекладывала в кроватку, так проходила наша ночь, длинною 12-13 часов. Ночных «концертов» у нас не было.

 

В четыре месяца наша система дала сбой. Мы тогда сделали первую АКДС. Да здравствуют бессонные ночи! Ходили, носили, качали, пели песенки. Лежать и рыдать в кровати ребенку не дали, полагая, что если бы ему было хорошо, то он и дальше спокойно спал. Врачи только руками разводили. Тяжелые были ночи.

 

К шести месяцам опять научились спать и засыпать, только засыпали на груди. Спали ночью по 3-4 часа, сосали и опять спали (ночь 12-13 часов). Так сын стал спать с нами на диване. Днем тоже спали на диване, ГВ=СОН, я потихоньку уходила делать домашние дела.

 

Так продолжалось до десяти месяцев. Парень мой был ленивый, и сам понял как нужно садиться только в десять месяцев (и сразу стал вставать). К этому времени стало уже страшно его оставлять одного на диване, а каждый раз лежать с ним – это не для меня, не сплю днем. Пришлось развести понятия ГВ и СОН.

 

Я кормила ребенка и перекладывала его в кроватку. Далее уходила, собрав свою волю в кулак, потому что мое сидение рядом, сына на сон не вдохновляло. Он быстренько вскакивал на ножки и протягивал ко мне руки. Далее было по Эстевилю, но с нашими поправками: заходила в комнату, укладывала плачущего ребенка, потому что он стоял, объясняла, что надо спать, снова выходила. Выдерживала интервалы не более пяти минут, не только в первый, но и в последующие дни. Дней за пять сын привык засыпать в кроватке сам. Далее и рыданий не было, поболтает, поиграет и спит. Так у нас было только на два дневных сна.

Z-z-z… Он наигрался и спит. Рыданий не было. Год и месяц

Ночью по Эстивилю не спали. Все также спал со мной, после того как я ложилась спать, просыпаясь каждые 3-4 часа, чтобы подкрепиться.

 

К году году активно стали резаться зубки (в 11 месяцев было всего два зуба), бывало ночью по несколько часов не спали, или спали на нурофене, иначе никак. По Эстивилю, ребенок должен сжать свои режущиеся зубки и спать, не плакать.

 

Как только зубки порезались, сыночек стал сразу спать спокойнее и длительнее и днем и ночью. Мы все также были на ГВ пот требованию ночью (обычно 3 раза), а днем и вечером засыпали без проблем. Спасибо Эстивилю.

 

К полутора годам сын стал спать дольше по ночам, просыпался на ГВ 1-2 раза. Но в год и восемь, наша система засыпания дала сбой (зубы снова), на ночь стала укладывать на груди, иначе вообще никак было. В год и десять прорезались наши зубки, ребь успокоился. Решила укладывать на ночь без ГВ, да и вообще уже хотелось закончить ГВ плавненько, потому что сын уже был готов.

 

Сказала сыночку что Сися ВАВА, болит, кушать нельзя (намазала зеленкой), ребенок посокрушался, но не плакал. Я его по вечерам по своей схеме Эстивиля укладывала, никаких особых рыданий не было, похныкивал, да грудь все проверял. Ночью думала, если уж совсем никак, то покормлю (он ночью даже не просыпается, когда сосет). На удивление спал спокойно, проснулся раз, воду попили и дальше спать. Две ночи совсем не просыпались (он понял, что молока не будет и не проснулся!).

 

Прошла всего неделя (закончили ГВ 12 мая).

 

Днем я его кладу в кровать – у него тут же глазки закрываются и спит (у нас с года так). Вечером укладываемся тяжелее, по полчаса, встает, я захожу, обнимаю, целую (Эстивиль не рекомендует), кладу, никаких криков нет, так похныкивает. Днем спит по два с половиной — три часа, ночью по 11-12 часов.

 

Еще до второго нашего раза применения метода Эстивиля, мне попалась эта статья:

 

В ней Эстивиль извиняется за свой метод, и говорит, что к младецам метод не применим. При помощи гугл-переводчика, смысл улавливается хорошо.

 

Несмотря на это опровержение, метод применила, потому что у меня получилась очень мягкая вариация метода. К тому же мы мягко закончили ГВ (ребенок перестал сосать грудь, просто зажимал ее зубами, понятно, что это мега-больно) тоже в какой-то степени благодаря методу Эстивиля (пишу, а сама плачу, потому что уже больше никогда сынок не будет так сладко сопеть мне носиком в грудь).

 

ОБНОВЛЕНИЕ:

1. Отпуск. Год и одиннадцать — два и два. Моя система укладывания дала сбой, так как уложить ребенка по Эстевилю не представлялось возможным. Я ложилась с ним на диван, спиной к сыну, чтобы не веселился. Так мы укладывались почти три месяца на дневной и ночной сон. Иногда днем полежав вставали, ребенок не засыпал.

2. Приехали домой. Ребенок не среагировал на бабушек, зато обрадовался своим игрушкам. Из этого сделала вывод, что он и кровать вспомнит. Прилетели утром. В обед уложила спать в кровать по своему ритуалу. Лег спокойно. Уснул.

Далее был период когда спал и не спал, кушали и играли среди ночи, так как мы сменили восемь часовых поясов. Когда малыш адаптировался все вошло в норму.

3. Два с половиной года. Для нас это возраст взросления. Сын стал иногда не засыпать днем. Но это не мешает мне все также его укладывать днем спать. Наш ритуал ребенок воспринимает спокойно, ложится в кровать с желанием. Может полежать, поиграть (иногда часа полтора).

Только мы все так же спим в кровати с «забором», если бы сменили ее на более взрослую кровать, думаю, что сын не стал бы днем лежать.

4. Сыну два и восемь. На ночь укладывается спокойно. Днем, когда засыпает, то тоже все тихо, быстро, спокойно. Когда не спит, то не хнычет. Полежит, поиграет. у нас несколько небольших игрушек в кровати. Днем спит с разной периодичностью: день спит, три — нет; два дня спит, два не спит.

5. Два года и одиннадцать месяцев — по настоящее время. Сын совсем перестал засыпать днем. Довольно хорошо обходимся теперь без дневного сна. Вечером ложимся по своему ритуалу без истерик, капризов. Книжки на ночь по часу не читаю, колыбельные не пою. Засыпает сам за 10 — 25 минут. Периодически зовет, поцеловать, укрыть одеялом, попить. Прихожу сразу. Отпускает спокойно.

 

Метод рекомендую, но только очень аккуратно, чтобы у малыша не было психологической травмы.

Мамочкам желаю терпения. Малышам только сладких снов.

Метод запуска расширения Spock вызывается несколько раз

У меня есть куча функциональных тестов, основанных на Споке и Гебе. Я хочу выполнить некоторые действия до и после выполнения этих тестов. Поэтому я создал глобальное расширение и добавил необходимые функциональные возможности к методам start() и stop() этого расширения. Но проблема заключается в том, что методы start/stop вызываются до/после каждой спецификации Spock, хотя документация Spock ( http://spockframework.org/spock/docs/1.1/all_in_one.html#_global_extensions ) утверждает:

start() это вызывается один раз в самом начале выполнения Спока

stop() это вызывается один раз в самом конце выполнения Спока

Я делаю что-то не так или документация Спока неверна в отношении поведения этих методов?

testing

spock

geb

Поделиться

Источник


MantasG    

15 мая 2017 в 14:40

2 ответа


  • textFieldShouldEndEditing вызывается несколько раз

    Я работаю над представлением, которое имеет несколько объектов UITextField . Мой контроллер представления служит UITextFieldDelegate , и я реализовал метод (BOOL)textFieldShouldEndEditing:(UITextField *)textField для сохранения и проверки отображаемой записи. Если пользователь нажимает на кнопку…

  • Метод вызывается несколько раз, если вызывается из атрибута rendered

    Я вызываю метод из атрибута rendered, где я заметил, что метод запускается несколько раз в фазе RENDER_RESPONSE. Было также замечено, что этот метод много раз срабатывал и на других фазах (APPLY_REQUEST_VALUES, PROCESS_VALIDATIONS и т. д.). Я видел связанный запрос ( Почему getter вызывается так…



0

@MantasG Спок реализует бегун JUnit и не контролирует, как он выполняется. Глобальные расширения управляются в RunContext , который хранится в ThreadLocal . Если surefire использует несколько потоков для выполнения тестов, то это создаст несколько экземпляров RunContext , каждый со своим собственным списком глобальных расширений. Если вы используете EmbeddedSpecRunner , это также создаст новый изолированный контекст.

Этот контекст будет оставаться до тех пор, пока поток не умрет. Это было бы
более точно удалить контекст после завершения тестового запуска,
но JUnit Runner SPI не обеспечивает адекватного крючка. Тем
не менее, поскольку большинство сред fork новый JVM для каждого тестового запуска, это
не должно быть большой проблемой на практике.

В зависимости от того, что вы хотите сделать, есть и другие способы:

  1. вы можете использовать JUnitRunListener и использовать крючки testRunStarted / testRunFinished . Обратите внимание, что вам необходимо зарегистрировать это через surefire.
  2. Если вы действительно хотите запустить только один раз, вы можете использовать failsafe вместо surefire и использовать цели до и после интеграции.
  3. Вы можете взломать что-то, используя статические поля и счетчик для каждого вызова start / stop , и выполнить действие запуска, если счетчик равен 0, и выполнить действие остановки, как только счетчик достигнет 0. Конечно, вам нужно будет сделать эту нить безопасной.

Обратите внимание, что surefire также поддерживает разветвление нескольких JVMs, и это также повлияет на варианты 1 и 3.

Поделиться


Leonard Brünings    

17 мая 2017 в 01:14



0

Я считаю, что Спок вызывается в начале каждой спецификации тестирования в вашем наборе тестов, поэтому запуск и остановка выполняются с каждым из этих исполнений

Я думаю, что вы, возможно, захотите взглянуть на методы крепления, найденные в том же документе, который вы связали в вопросе:
http://spockframework.org/spock/docs/1.1/all_in_one.html#_спецификация

Поделиться


switch301    

16 мая 2017 в 18:29


Похожие вопросы:

Метод действия вызывается несколько раз

Я только что заметил что-то довольно странное в методе действия, который вызывается простым щелчком по ссылке на моем сайте MVC 3. По какой-то причине этот метод действия вызывается несколько раз….

Подсчитайте, сколько раз метод вызывается в Cocoa-Touch?

У меня есть небольшое приложение, которое использует cocos2d для запуска четырех levels игр, в которых каждый уровень-это одно и то же. После запуска четвертого уровня я хочу отобразить конечную…

@Subscribe метод вызывается несколько раз для одного и того же события

В моем коде я слушаю события, используя @Subscribe anotation: @Subscribe public void orderUpdate(OrderUpdateEvent event) Моя проблема заключается в том, что этот метод вызывается несколько раз (1-3…

textFieldShouldEndEditing вызывается несколько раз

Я работаю над представлением, которое имеет несколько объектов UITextField . Мой контроллер представления служит UITextFieldDelegate , и я реализовал метод…

Метод вызывается несколько раз, если вызывается из атрибута rendered

Я вызываю метод из атрибута rendered, где я заметил, что метод запускается несколько раз в фазе RENDER_RESPONSE. Было также замечено, что этот метод много раз срабатывал и на других фазах…

метод loadview вызывается несколько раз

Я создаю свои представления программно. Если я не ставлю метод loadView , приложение работает хорошо. Однако, когда я добавляю loadView метод, подобный этому: — (void)loadView { NSLog(@loadView is…

Подсчитайте, сколько раз статический метод вызывается в Spock

Я пытаюсь подсчитать, сколько раз вызываются статические методы. Я хочу проверить количество вызовов базового и внутреннего методов. Ниже показан очень упрощенный код. Я попробовал несколько…

Инициализированный метод GenericUDF вызывается несколько раз

У меня есть HiveUDF, который расширяет GenericUDF, когда я вызываю udf через spark.sql, я получаю правильные результаты, но инициализированный метод вызывается несколько раз. Не могу понять, почему…

Angular метод события вызывается несколько раз

В моем app.component.ts я делаю звонок API и забираю userDetails . Тогда я испускаю это userDetails . Я подписался на этот userDetails в своем компоненте header . Мой компонент заголовка использует…

Метод Widget getTimeline вызывается несколько раз для настраиваемых намерений

В моем виджете iOS 14 с одним пользовательским намерением, когда пользователь выбирает одно намерение, а затем меняет его на другое, мой метод getTimeline вызывается несколько раз для каждого…

Метод воспитания по Б. Споку

ФГБОУ ВПО «Казанский
национальный исследовательский технологический
университет».

 

 

 

 

 

РЕФЕРАТ

на
тему:

«Особенности
воспитания по Б.Споку»

 

 

 

 

                                                                 
Выполнила: студентка гр.3121-111               

 Давлетова 
Г.И.

Проверила:
доцент Старшинова Т.А.

 

 

 

Казань, 2013

Содержание

  1. Введение
  2. Бенджамин
    Маклейн Спок – детский педиатр, теоретик.
  3. Теория
    Б. Спока. Положительные стороны
  4. Теория
    Б. Спока. Отрицательные стороны
  5. Воспитание
    по Б.Споку: да или нет?
  6. Заключение
  7. Использованная
    литература

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.Введение

 

Воспитание растущего человека как формирование
развитой личности составляет одну из
главных задач современного общества.
Преодоление отчуждения человека от его
подлинной сущности, формирование духовно
развитой личности в процессе исторического
развития общества не совершается автоматически.
Оно требует усилий со стороны людей, и
эти усилия направляются как на создание
материальных возможностей, объективных
социальных условий, так и на реализацию
открывающихся на каждом историческом
этапе новых возможностей для духовно-нравственного
совершенствования человека. В этом двуедином
процессе реальная возможность развития
человека как личности обеспечивается
всей совокупностью материальных и духовных
ресурсов общества.

Воспитание (психологический аспект)
— 1) в широком смысле — процесс социализации
индивида, становления и развития его
как личности на протяжении всей жизни
в ходе собственной активности и под влиянием
природной, социальной и культурной среды,
в т.ч. специально организованной целенаправленной
деятельности родителей и педагогов; 2)
обретение индивидом общественно признанных
и одобряемых данным сообществом социальных
ценностей, нравственных и правовых норм,
качеств личности и образцов поведения
в процессах образования. В обоих этих
значениях воспитание представляет собой
взаимодействие внутренних, психических
процессов, связанных с активным полаганием
себя вовне, самовоспитанием, саморазвитием
и самореализацией, и внешних влияний;
результатом такого взаимодействия выступает
индивидуальность человека как уникальный
сплав интеллектуального и социокультурного
знания, переживания и опыта. Содержательная
характеристика воспитания воплощается,
в конечном счете, в категориях права,
морали и нравственности. Любой вид деятельности
человека имеет нравственный аспект, которому
нельзя научить, но можно воспитать, пережить
чувством, опытом в процессе совершения
им собственных поступков.

В профессионально-педагогическом смысле
воспитание—это деятельность специально
подготовленных взрослых (воспитателей),
по особой программе руководящих формированием
(в идеале) у своих подопечных нравственного
чувства, культурных потребностей и им
соответствующих творческих способностей.

В отличие от обучения, опирающегося
прежде всего на логику и когнитивные
процессы, в воспитании преобладают эмоциональный,
ценностно-ориентационный, отношенческий,
поведенческий компоненты активности,
вырабатывающие в человеке моральные
принципы, ценности, установки, черты характера,
систему отношений к природе, обществу,
труду, другим людям и к самому себе. Обучение
имеет дело преимущественно с искусственными
— символическими, знаковыми, модельными
объектами и системами; воспитание опирается
на реальные межличностные отношения,
социальные процессы и явления общечеловеческой
и национальной культуры как естественные
события окружающей человека действительности,
способные вызывать эмоциональные переживания,
на живую природу. Воспитание не сводится
к целенаправленному и планомерному воздействию
на сознание и поведение человека в системе
образования, но означает все процессы
трансляции наличной культуры — стихийной
(влияние улицы, сверстников, бытовых и
профессиональных отношений, общения
с другими людьми), полустихийной (искусство,
семья, средства массовой информации),
относительно целенаправленной (законы,
правовые нормы, школа, церковь и др.). Нравственное
содержание составляет основу гуманизации
образовательного процесса, поскольку
выражает культурную норму социальности
человека. Критерием нравственности является
его моральное самосознание и практика
поведения.

 

 

 

 

2.Бенджамин Маклейн
Спок – детский педиатр, теоретик.

Бе́нджамин Макле́йн Спок (англ. Benjamin
McLane Spock, 2 мая 1903, Нью-Хейвен, Коннектикут,
США — 15 марта 1998, Сан-Диего, Калифорния,
США) — известный американский педиатр,
чья культовая книга «Ребенок и уход за
ним», изданная в 1946, является одним из
крупнейших бестселлеров в истории США.
За долгую жизнь Спока эта книга выдержала
семь изданий, была переведена на 39 языков
и вышла общим тиражом более чем в 50 млн.
экземпляров.

Пик работы врача и писателя пришелся
на 1950-1960 гг., он. 12 лет преподавал в университете,
писал новые книги, читал лекции по всему
миру, вел популярную телепередачу.

Бенджамин Спок – культовая фигура второй
половины ХХ века. Он заслужил признание
и любовь миллионов людей во всем мире.
С полным правом его можно поставить в
ряд выдающихся психологов-гуманистов
(хотя его традиционно и причисляют к врачам-педиатрам).
В своих работах он в первую очередь выступал
как детский врач, но по сути – как тонкий
психолог, чья гуманистическая позиция
определила мировоззрение нескольких
поколений.

Его революционный призыв к родителям
был «вы знаете гораздо больше, чем вам
кажется». Спок был первым педиатром, изучавшим
психоанализ с целью попытки понимания
нужд детей в рамках развития семейных
отношений. Его идеи о воспитании детей
повлияли на несколько поколений родителей,
сделав их более гибкими и нежными по отношению
к своим детям, заставив их относиться
к своим детям как к личностям, в то время
как общепринятым мнением было то, что
воспитание ребенка должно быть сфокусировано
на выработке дисциплины.

С именем Спока связан своеобразный переворот
в семейном воспитании, обозначивший решительный
переход от авторитаризма в общении с
детьми к гуманизму, к демократической
педагогике. Спок не просто теоретик, он
скорее чистый практик, практик-экспериментатор,
гарантирующий педагогический успех,
заботливо оберегающий родителей от неоправданного
риска, от зряшного новаторства, от ошибок.

Особой популярностью пользуются рекомендации
Спока у молодых матерей. Крылатым стало
выражение «воспитание по Споку», то есть
воспитание гуманистическое, творческое,
опирающееся на две силы — на научное
знание и народную мудрость.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.Теория Б. Спока. Положительные
стороны

Эта теория сформулирована практически
независимо от гуманистической психологии,
но удивительно созвучно с ее основными
построениями. В супербестселлере «Ребенок
и уход за ним», вышедшем в 1947 году, Спок
изложил свои представления о развитии
здоровой и счастливой личности, о природе
взаимоотношений родителей и детей. . В
то время книга обрела широкую популярность
среди родителей, для многих стала настольным
пособием по уходу за малышом.

Его
главная идея — признание своеобразия
и уникальности личности ребенка. Спок
советовал родителям избегать крайностей
в воспитании, проявлять чуткость, учитывать
желания и волю ребенка. При этом (что нередко
упускают из виду) он подчеркивал роль в
воспитании родительского авторитета,
который, по его мнению, не имеет ничего
общего с авторитарностью и диктатом.

Важнейшим методом воспитания Спок назвал
«метод терпения»; твердость родителей
выражается не в учении настоять на своих
требованиях сию минуту и любой ценой,
а в том, чтобы, избегая ожесточения, допустить
проявление ребенком независимости, но вернуться
к своим требованиям в удобный момент. Родителям
Спок советовал добиваться таких отношений
с детьми, когда отпадает необходимость
в наказании.

Однако некоторые родители восприняли
гуманистические идеи Спока (как это нередко
бывает с любыми гуманистическими идеями)
как проповедь попустительства и вседозволенности.
Безволие и безответственность своих подрастающих
детей они склонны были объяснять теоретическими
ошибками Спока. Оправдалось его предостережение
о том, что бездумное следование даже самой
здоровой педагогической концепции может
принести больше вреда, чем пользы. В связи
с этим Спок специально переработал свою
книгу для новых изданий, особо подчеркнув
роль родительского авторитета, значение
дисциплины для воспитания.
Некоторое заострение этих аспектов отразило
эволюцию идей Спока, но по сути не противоречило
его первоначальной концепции и явилось
ее логическим развитием.

Основу дисциплины Спок, как и прежде,
усматривал во взаимной привязанности
и любви родителей и детей. Наверное, в этом
и состоит подлинный гуманизм — в сочетании
любви и ответственности.

Такой подход в целом характерен
для современного состояния разработки
проблемы воспитания в психологии и педагогике.
Очевидная несостоятельность доведенных
до абсурда крайностей заставляет искать
новые пути, позволяющие избежать прошлых
ошибок. Хочется надеяться, что человеком
будущего не станет ни натренированный
биоробот, ни безответственный шалопай,
хотя в силу живучести устоявшихся концепций
и те и другие еще будут появляться в изобилии.
Парадокс состоит в том, что мыслители
прошлого не были фантазерами, каждый из них
высказал немало здравых идей, хотя и противоречивых.
Сегодня в нашем резерве богатейший опыт
гениальных прозрений и опасных заблуждений.
От того, чем мы воспользуемся, без преувеличения,
зависит судьба подрастающих поколений.

Ключевое понятие, которое выделяет автор
книги, — это дисциплина. Неважно сколько
ребенку лет, он должен всегда знать границы
допустимого поведения, которые безоговорочно
установлены взрослыми. Ребенка необходимо
уважать, уделять ему внимание, но это
не значит вседозволенность.

По мнению Спока, до трех месяцев малыша
невозможно избаловать. В таком возрасте
он чрезвычайно нуждается в мамином тепле,
его можно брать часто на руки и подолгу
укачивать.

Но, начиная с четвертого месяца жизни,
ребенка следует начинать воспитывать
и приучать к дисциплине. Если малыш привык
к рукам, Спок советует начинать отучать
кроху от такого желания. Поначалу малыш
будет капризничать, плакать, но не стоит
серьезно обращать на это внимание. Постепенно
ребенок привыкнет и поймет, что не может
рассчитывать на маму и папу ежеминутно.

Если крохе время спать, мама должна сказать
ему об этом твердым голосом, но с улыбкой,
выйти из комнаты и не обращать внимания
на капризы своего чада. Очень важно удержаться
от искушения подойти к ребенку и успокоить.
С каждым днем малыш будет плакать все
меньше, научится засыпать самостоятельно
в определенное время. Родители, увидев
хорошее влияние своего поведения на малыша,
убедятся, что поступают правильно.

Бывает, что годовалый ребенок часто
просыпается во сне, хнычет или ворочается.
Мама тотчас берет его на руки. Кроха постепенно
привыкает к такому поведению мамы и понимает,
что может потребовать мамины руки при
помощи малейшего крика. Не стоит бежать
к малышу по первому зову, он может и сам
спокойно уснуть и спать дальше.

 

Ребенка необходимо оставлять периодически
одного. Не стоит находиться возле малыша
все время, когда он бодрствует. Иначе
малыш просто не сможет научиться развлекаться
самостоятельно и будет требовать участия
в своих играх мамы или других родственников.

 

Избалованного малыша можно перевоспитать.
Необходимо составить расписание, по которому
родители заняты своими заботами. Если
малыш требует к себе внимания, мама или
папа должны дружелюбным уверенным тоном
заявить, что заняты. Если малыш еще не
понимает слова, то уловит интонацию. В
часы, отведенные на игры с ребенком, не
стоит брать его на руки, лучше присесть
возле него на пол или кровать. Иначе, ребенок
будет сильно протестовать при следующей
попытке оставить его одного.

 

Спок уверяет, что для ощущения безопасности
малышу необходимо уверенное руководство
родителей. Ребенок будет вести себя беспокойно,
если родители не могут принять какое-то
решение. Чем больше откликаться на капризы
крохи, тем больше он будет требовать.
Малыш очень быстро осознает, что плачем
может добиться абсолютно всего. Не стоит
потакать всем требованиям ребенка.

 

Спок убежден, что неприученный к самостоятельности
ребенок, очень трудно избавляется от
зависимости. А близость к своему ребенку
пагубно сказывается на душевном равновесии
мамы. Если соблюдать рекомендации Спока,
то мама должна запастись неимоверным
количеством жесткости и воли, постоянно
помнить о том, что чрезмерная заботливость
вредна для ребенка, начиная с четырех
месяцев.

 

Читая книгу доктора Спока, мама может
обнаружить, что общение с малышом – это
не радость, гармония и счастье, а некая
борьба, в которой ей просто необходимо
победить, чтобы не превратиться в раба
своего ребенка и не испортить его жизнь,
привив ему зависимость.

 

Но, тем не менее, книга доктора Спока
сыграла огромную роль в воспитания детей
середины прошлого века, а к некоторым
ее рекомендациям прислушиваются и сегодня.

 

Заслуга доктора Спока в том, что он первым
убедительно доказал, что ребенка можно
и нужно воспитывать без насилия, что любовь
и доброта сильнее, эффективнее принуждения,
что уважение к ребенку и к миру его интересов,
прежде всего к его духовным запросам
— залог воспитания в нем лучших человеческих
качеств. И еще доктор Спок считал, что
жизнь родителей не должна ограничиваться
воспитанием детей, она самоценна так
же, как и жизнь ребенка.

Да, воспитание — тяжелый труд, но этот
труд должен приносить радость и к тому
же оставлять родителям место и для других
радостей жизни.

Постулаты Спока внесли немалый переполох.
Оказывается, ребенка совсем не обязательно
кормить в определенные часы. Оказывается,
его нельзя шлепать, а надо побольше ласкать.
Оказывается, следует чаще доверять его
инстинкту: он сам знает, что из еды ему
полезно, знает, когда ему ложиться спать,
а когда и сколько надо побегать.

 

Возражений было и есть более чем достаточно.
Что же, идти на поводу у ребенка? А если
он бегать захочет ночью? А если у него
вовсе нет желания есть? А если его шалости
всем мешают? А если… Да, возражения весьма
резонны. Особенно в обществе, где главенствует
догмат дисциплины, где подчинение считается
более существенным, чем личностные порывы.

Введение в спецификации Spock

После того, как мы закончили этот урок, мы

  • Знайте, как мы можем создавать классы спецификаций.
  • Знаком со структурой класса спецификации.
  • Поймите, как мы должны использовать разные поля.
  • Может использовать методы крепления.

В этом уроке предполагается, что:

Посмотрите урок

Текстовая версия этого урока приводится ниже:

Создание нашей первой спецификации Spock

Класс, содержащий наши тестовые примеры, называется классом спецификации, и мы можем создать класс спецификации Spock, выполнив следующие шаги:

  1. Создайте новый класс Groovy.
  2. Расширение класса Specification .
  3. Настройте категорию тестовых случаев, найденных из нашего класса спецификации.

После того, как мы создали простой класс спецификации, исходный код созданного класса выглядит следующим образом:

импортировать org.junit.experimental.categories.Category
import spock.lang.Specification

@ Категория (UnitTest.class)
class ExampleSpec расширяет Спецификацию {

}
 


Прежде чем мы продолжим этот урок, я хочу указать на две вещи.

  • Нам не нужно настраивать категорию тестовых случаев. Однако, если мы разделим наши модульные, интеграционные и сквозные тесты с помощью категорий JUnit 4, мы должны будем это сделать, иначе наши тестовые примеры не будут запущены.
  • Когда я называю свои классы спецификации, я добавляю строку: «Spec» к имени системы в соответствии со спецификацией (также известной как тестируемая система).

Дополнительная литература:

Мы только что создали нашу первую спецификацию Spock.К сожалению, наша спецификация бесполезна, потому что ничего не делает. Прежде чем мы сможем это изменить, мы должны более внимательно изучить структуру спецификации Spock.

Структура спецификации Spock

Спецификация spock может состоять из следующих частей:

  • Константы — это статические поля, которые полезны, когда мы хотим назвать магические числа.
  • Поля экземпляра — хорошее место для хранения объектов, принадлежащих фикстуре спецификации.Объект принадлежит к приспособлению спецификации, если мы используем объект при написании тестов. Кроме того, Спок рекомендует инициализировать поля нашего экземпляра при их объявлении.
  • Методы фиксации отвечают за настройку системы в соответствии со спецификацией (SUS) перед вызовом методов функции и очистку системы в соответствии со спецификацией после вызова методов функции.
  • Методы функций определяют ожидаемое поведение системы в соответствии со спецификацией.
  • Вспомогательные методы — это методы, которые используются другими методами, найденными из класса спецификации.

Следующий пример кода демонстрирует структуру класса спецификации Spock:

импортировать org.junit.experimental.categories.Category
import spock.lang.Specification

@ Категория (UnitTest.class)
class ExampleSpec расширяет Спецификацию {
// Константы
// Поля
// Методы фиксации
// Методы функции
// Вспомогательные методы
}
 

Теперь мы можем определить основные строительные блоки спецификации Spock.Давайте продолжим и подробнее рассмотрим константы и поля экземпляров.

Добавление констант и полей экземпляра в нашу спецификацию

Прежде чем мы сможем добавить константы и поля экземпляра в наш класс спецификации, мы должны понять, что Spock Framework имеет два типа полей экземпляра:

  • Объекты, хранящиеся в «обычных» полях экземпляра, не используются совместно методами функций. Это означает, что каждый метод функции получает свой собственный объект. Мы должны предпочесть обычные поля экземпляра, потому что они помогают нам изолировать методы функций друг от друга.
  • Объекты, хранящиеся в «общих» полях экземпляра, совместно используются методами функций. Мы должны использовать общие поля, если создание рассматриваемого объекта является дорогостоящим или мы хотим поделиться чем-то со всеми методами функции.

Довольно теории. Давайте добавим в наш класс спецификации несколько констант и полей экземпляров. Мы можем сделать это, выполнив следующие шаги:

  1. Добавьте статическую константу с именем MESSAGE в наш класс спецификации и инициализируйте ее.Эта константа содержит ожидаемое сообщение, которое должно быть возвращено методом getMessage () класса MessageService .
  2. Добавьте обычное поле экземпляра в наш класс спецификации и инициализируйте его, создав новый объект MessageService . Поскольку мы используем обычное поле экземпляра, каждый метод функции получит свой собственный объект MessageService .
  3. Добавьте общее поле в наш класс спецификации и инициализируйте его, создав новый объект Object .Когда мы создаем совместно используемое поле, мы должны отметить его как совместно используемое, аннотируя его аннотацией @Shared . Кроме того, поскольку это общее поле, мы ожидаем, что каждый метод функции получит один и тот же объект.

После того, как мы добавили эти поля в наш класс спецификации, его исходный код выглядит следующим образом:

импортировать org.junit.experimental.categories.Category
import spock.lang.Shared
import spock.lang.Specification

@ Категория (UnitTest.класс)
class FieldExampleSpec расширяет спецификацию {

    static MESSAGE = 'Hello World!'
    def messageService = новый MessageService ()
    @Shared sharedObject = новый объект ()
}
 

Давайте продемонстрируем разницу между обычным полем и полем общего экземпляра, добавив два метода функции в наш класс спецификации. Эти методы функций гарантируют, что метод getMessage () класса MessageService вернет ожидаемое сообщение.Однако больше всего нас интересует то, что оба метода функции записывают объекты, хранящиеся в полях messageService и sharedObject , в System.out .

После того, как мы добавили эти методы функции в наш класс спецификации, его исходный код выглядит следующим образом:

импортировать org.junit.experimental.categories.Category
import spock.lang.Shared
import spock.lang.Specification

@ Категория (UnitTest.class)
class FieldExampleSpec расширяет спецификацию {

    static MESSAGE = 'Hello World!'
    def messageService = новый MessageService ()
    @Shared sharedObject = новый объект ()

    def 'Получить сообщение первое' () {
        println 'Метод первой функции'
        println 'уникальный объект:' + messageService
        println 'общий объект:' + sharedObject

        ожидать: "Должно возвращаться правильное сообщение"
        messageService.getMessage () == СООБЩЕНИЕ
    }

    def 'Получить сообщение два' () {
        println 'Второй метод функции'
        println 'уникальный объект:' + messageService
        println 'общий объект:' + sharedObject

        ожидать: "Должно возвращаться правильное сообщение"
        messageService.getMessage () == СООБЩЕНИЕ
    }
}
 

Методы функций описаны в уроке этого раздела. Однако эти методы функций настолько просты, что вы должны понимать, что делают эти методы функций.

Когда мы запустим наш класс спецификации, мы должны увидеть, что следующие строки записаны в System.out :

Метод первой функции
уникальный объект: com.testwithspring.master.MessageService@6b419da
общий объект: java.lang.Object@60dcc9fe
Второй метод функции
уникальный объект: com.testwithspring.master.MessageService@309e345f
общий объект: java.lang.Object@60dcc9fe
 

Другими словами, мы видим, что:

  • Объект, который хранится в обычном поле экземпляра, не используется совместно методами функции.
  • Объект, который хранится в поле общего экземпляра, используется совместно методами функции.

Несмотря на то, что теперь мы можем добавлять поля в наш класс спецификации, мы не можем писать полезные тесты, потому что не знаем, как мы можем настроить или очистить систему в соответствии со спецификацией. Пришло время узнать, как мы можем использовать методы фиксации.

Использование методов крепления

Методы фиксации используются для настройки и очистки системы в соответствии со спецификацией, и все методы фиксации, поддерживаемые Spock Framework, являются необязательными.

Давайте добавим все методы фикстуры в наш класс спецификации. Спецификация Spock может иметь следующие методы крепления:

  • Метод setupSpec () вызывается перед вызовом первого метода функции. Этот метод обычно используется для выполнения ресурсоемкой конфигурации, которая используется несколькими методами функций.
  • Метод setup () вызывается перед каждым методом функции. Мы можем использовать этот метод для настройки системы под спецификацию.Кроме того, если для наших обычных полей экземпляра требуется установочный код, длина которого превышает одну строку, мы должны инициализировать их в этом методе.
  • Метод cleanup () вызывается после каждого метода функции. Мы можем использовать этот метод для очистки конфигурации, которая была сделана в методе setup () .
  • Метод cleanupSpec () вызывается после вызова всех методов функции. Этот метод используется для очистки конфигурации, которая была выполнена в методе setupSpec () .

После того, как мы добавили все методы фикстуры в наш класс спецификации, его исходный код выглядит следующим образом:

импортировать org.junit.experimental.categories.Category
import spock.lang.Specification

@ Категория (UnitTest.class)
class FixtureMethodExampleSpec расширяет Спецификацию {

    static MESSAGE = 'Hello World!'
    def messageService = новый MessageService ()

    def setupSpec () {
        println 'До первого метода функции'
    }

    def setup () {
        println 'Перед каждым методом функции'
    }

    def cleanup () {
        println 'После каждого метода функции'
    }

    def cleanupSpec () {
        println 'После последнего метода функции'
    }
}
 

Методы setupSpec () и cleanupSpec () могут использовать только общие поля экземпляра.

Давайте добавим два метода функции в наш класс спецификации. Эти методы функций гарантируют, что метод getMessage () класса MessageService вернет ожидаемое сообщение. Кроме того, оба метода функции записывают String в System.out .

После того, как мы написали эти методы функций, исходный код нашего класса спецификации выглядит следующим образом:

импортировать org.junit.experimental.categories.Category
импортный спок.lang.Specification

@ Категория (UnitTest.class)
class FixtureMethodExampleSpec расширяет Спецификацию {

    static MESSAGE = 'Hello World!'
    def messageService = новый MessageService ()

    def setupSpec () {
        println 'До первого метода функции'
    }

    def setup () {
        println 'Перед каждым методом функции'
    }

    def cleanup () {
        println 'После каждого метода функции'
    }

    def cleanupSpec () {
        println 'После последнего метода функции'
    }

    def 'Получить сообщение первое' () {
        println 'Метод первой функции'
        ожидать: "Должно возвращаться правильное сообщение"
        messageService.getMessage () == СООБЩЕНИЕ
    }

    def 'Получить сообщение два' () {
        println 'Второй метод функции'
        ожидать: "Должно возвращаться правильное сообщение"
        messageService.getMessage () == СООБЩЕНИЕ
    }
}
 

Когда мы запускаем нашу спецификацию, мы замечаем, что следующие строки записываются в System.out :

До первого метода функции
Перед каждым методом функции
Метод первой функции
После каждого метода функции
Перед каждым методом функции
Второй метод функции
После каждого метода функции
После последнего метода функции
 

Этот вывод доказывает, что методы нашего класса спецификации вызываются в следующем порядке:

  1. setupSpec ()
  2. настройка ()
  3. Метод первой функции
  4. очистка ()
  5. настройка ()
  6. Второй метод функции
  7. очистка ()
  8. cleanupSpec ()

Давайте подведем итог тому, что мы узнали из этого урока.

Сводка

Этот урок научил нас пяти вещам:

  • Каждый класс спецификации Spock должен расширять класс spock.lang.Specification .
  • Спецификация Spock может иметь константы, поля экземпляра, методы фиксации, методы функций и вспомогательные методы.
  • Мы должны предпочесть обычные поля экземпляра, потому что они помогают нам изолировать методы функций друг от друга.
  • Мы должны использовать общие поля экземпляра только в том случае, если создание рассматриваемого объекта является дорогостоящим или мы хотим поделиться чем-то со всеми методами функции.
  • Мы можем инициализировать и очистить систему в соответствии со спецификацией, используя методы фиксации.

Получить исходный код с Github

Порядок выполнения методов настройки и очистки в среде spock

7 сен 2018 от signalw

Итак, я какое-то время использую среду тестирования spock. Время от времени я попадаю в сложную часть порядка работы методов настройки и очистки приспособлений.

Документация

Spock довольно хорошо объясняет, что делает каждый из доступных методов фиксации в разделе Spock Primer.

  def setup () {} // запускаем перед каждым методом функции
def cleanup () {} // запускаем после каждого метода функции
def setupSpec () {} // запускаем перед первым методом функции
def cleanupSpec () {} // запускаем после последнего метода функции
  

Если методы фикстуры переопределены в подклассе спецификации, то setup () суперкласса будет выполняться перед setup () подкласса. cleanup () работает в обратном порядке, то есть cleanup () подкласса будет выполняться до cleanup () суперкласса. setupSpec () и cleanupSpec () ведут себя одинаково. Нет необходимости явно вызывать super.setup () или super.cleanup () , поскольку Спок автоматически найдет и выполнит методы фикстуры на всех уровнях иерархии наследования.

Затем в разделе «Тестирование на основе данных» подчеркивается, что setup (), и cleanup () будут запускаться на каждой итерации внутри блока where.

Итерации изолированы друг от друга так же, как и методы отдельных функций.Каждая итерация получает свой собственный экземпляр класса спецификации, и методы setup и cleanup будут вызываться до и после каждой итерации соответственно.

Прежде чем я на самом деле ознакомился с его поведением в подходе, основанном на данных, я написал комплексный эксперимент, чтобы проверить это. Вот дочерний и родительский классы, а также их методы фиксации и функции:

  класс ParentClass расширяет спецификацию {
    def setupSpec () {println 'Родительский класс setupSpec ()'}
    def cleanupSpec () {println 'Родительский класс cleanupSpec ()'}
    def setup () {println 'Настройка родительского класса ()'}
    def cleanup () {println 'Очистка родительского класса ()'}

    def "test" () {
        setup: println 'Метод функции родительского класса setup (), a =' + a
        ожидать: 1 == 1
        cleanup: println 'Метод функции родительского класса cleanup (), a =' + a
        где: a << [1, 2]
    }
}

class ChildClass расширяет ParentClass {
    def setupSpec () {println 'Дочерний класс setupSpec ()'}
    def cleanupSpec () {println 'Дочерний класс cleanupSpec ()'}
    def setup () {println 'Настройка дочернего класса ()'}
    def cleanup () {println 'Очистка дочернего класса ()'}

    def "test" () {
        setup: println 'Метод функции дочернего класса setup (), a =' + a
        ожидать: 1 == 1
        cleanup: println 'Метод функции дочернего класса cleanup (), a =' + a
        где: a << [1, 2]
    }
}
  

А вот результат, когда я запускаю спецификацию ChildClass.

  Родительский класс setupSpec ()
Дочерний класс setupSpec ()
Настройка родительского класса ()
  Настройка дочернего класса ()
   Метод объекта родительского класса setup (), a = 1
   Метод функции родительского класса cleanup (), a = 1
  Очистка дочернего класса ()
Очистка родительского класса ()
Настройка родительского класса ()
  Настройка дочернего класса ()
   Метод объекта родительского класса setup (), a = 2
   Метод функции родительского класса cleanup (), a = 2
  Очистка дочернего класса ()
Очистка родительского класса ()
Настройка родительского класса ()
  Настройка дочернего класса ()
   Метод функции дочернего класса setup (), a = 1
   Метод функции дочернего класса cleanup (), a = 1
  Очистка дочернего класса ()
Очистка родительского класса ()
Настройка родительского класса ()
  Настройка дочернего класса ()
   Метод функции дочернего класса setup (), a = 2
   Метод функции дочернего класса cleanup (), a = 2
  Очистка дочернего класса ()
Очистка родительского класса ()
Дочерний класс cleanupSpec ()
Родительский класс cleanupSpec ()
  

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

Приучение к туалету - Американский семейный врач

1. Stadtler AC,
Горский П.А.,
Brazelton TB.
Методы приучения к туалету, клинические вмешательства и рекомендации. Американская академия педиатрии. Педиатрия .
1999; 103 (6 pt 2): 1359–1368 ....

2. Баккер Э.,
Wyndaele JJ.Изменения в приучении детей к туалету за последние 60 лет: причина увеличения дисфункции нижних мочевыводящих путей? БЖУ Инт .
2000. 86 (3): 248–252.

3. Блюм, штат Нью-Джерси,
Таубман Б,
Немет Н.
Почему приучение к туалету происходит в более старшем возрасте? Изучение факторов, связанных с более поздним обучением. Дж. Педиатр .
2004. 145 (1): 107–111.

4. Рог IB,
Бреннер Р,
Рао М,
Cheng TL.
Представления о подходящем возрасте для начала приучения к туалету: существуют ли расовые и социально-экономические различия? Дж. Педиатр .2006. 149 (2): 165–168.

5. Саймон Дж. Л.,
Томпсон Р.
Влияние типа нижнего белья на удержание мочи у малышей. J Appl Behav Anal .
2006. 39 (3): 363–368.

6. Шум Т.Р., Колб Т.М., Маколифф Т.Л., Симмс, доктор медицины, Андерхилл Р.Л., Льюис М. Последовательное приобретение навыков приучения к туалету: описательное исследование гендерных и возрастных различий у нормальных детей. Педиатрия. 2002; 109 (3): E48. http://www.pediatrics.org/cgi/content/full/109/3/e48.По состоянию на 6 августа 2008 г.

7. Таубман Б.
Приучение к туалету и отказ от использования туалета только из-за стула: перспективное исследование. Педиатрия .
1997. 99 (1): 54–58.

8. Блюм, штат Нью-Джерси,
Таубман Б,
Немет Н.
Взаимосвязь между возрастом начала приучения к туалету и продолжительностью обучения: перспективное исследование. Педиатрия .
2003. 111 (4 п.1): 810–814.

9. Классен Т.П., Кидду Д., Ланг М.Э. и др. Эффективность различных методов приучения к туалету для контроля опорожнения кишечника и мочевого пузыря.Роквилл, штат Мэриленд: Агентство медицинских исследований и качества; Декабрь 2006 г. Публикация AHRQ № 07-E003.

10. Канделора К.
Оценка двух подходов к приучению нормальных детей к туалету. Дисс Абстр Инт .
1977; 38 (05 – B): 2355–2441.

11. Brazelton TB.
Ориентированный на ребенка подход к приучению к туалету. Педиатрия .
1962; 29: 121–128.

12. Американская академия педиатрии. Приучение к туалету. Рекомендации для родителей. Деревня Элк Гроув, Иллинойс.: Американская академия педиатрии; 1998.

13. Фокс Р.М.,
Азрин NH.
Сухие штаны: быстрый метод приучения детей к туалету. Behav Res Ther .
1973. 11 (4): 435–442.

14. Азрин Н.Х.,
Foxx RM.
Быстрый метод приучения к туалету умственно отсталых. J Appl Behav Anal .
1971; 4 (2): 88–99.

15. Азрин Н., Фокс Р. Приучение к туалету менее чем за день. Нью-Йорк, Нью-Йорк: Саймон и Шустер; 1974.

16.Полаха Дж,
Варзак WJ,
Диттмер-Макмахон К.
Приучение к туалету в первичной медико-санитарной помощи: современная практика и рекомендации поведенческой педиатрии. J Dev Behav Pediatr .
2002. 23 (6): 424–429.

17. Батлер Дж. Ф.
Успех приучения родителей к туалету после прочтения «Приучение к туалету менее чем за день». Behav Ther .
1976; 7 (2): 185–191.

18. Каффман М.
Приучение к туалету несколькими воспитателями: энурез у детей кибуцев. Иср Энн Психиатр, родословная .
1972. 10 (4): 340–365.

19. Баккер Э.,
Ван Гул JD,
Ван Спрундель М,
Ван Дер Аувера C,
Wyndaele JJ.
Результаты анкеты, оценивающей влияние различных методов приучения к туалету на достижение контроля над мочевым пузырем. БЖУ Инт .
2002. 90 (4): 456–461.

20. Шонвальд А,
Шерит Л,
Штадтлер А,
Бриджмохан К.
Факторы, связанные с трудным приучением к туалету. Педиатрия .
2004. 113 (6): 1753–1757.

21. Блюм, штат Нью-Джерси,
Таубман Б,
Осборн МЛ.
Поведенческие особенности детей с отказом от туалетного стула. Педиатрия .
1997. 99 (1): 50–53.

22. Таубман Б,
Блюм, штат Нью-Джерси,
Немет Н.
Отказ от стула от использования туалета: предполагаемое вмешательство, направленное на поведение родителей. Arch Pediatr Adolesc Med .
2003. 157 (12): 1193–1196.

23. Горский П.А.Рекомендации по приучению к туалету: родители - роль родителей в приучении к туалету. Педиатрия .
1999; 103 (6 пт 2): 1362–1363.

24. Таубман Б,
Блюм, штат Нью-Джерси,
Немет Н.
Дети, которые прячутся во время дефекации до того, как завершили приучение к туалету: перспективное исследование. Arch Pediatr Adolesc Med .
2003. 157 (12): 1190–1192.

Сделайте тестирование забавным (снова) с помощью Spock Framework | Войцех Кшивец | Startup

Написание тестов может быть трудным.Это могло произойти по нескольким причинам. Может быть, человеку, который их пишет, не хватает опыта. Может быть, кодовая база написана таким образом, что ее практически невозможно протестировать. Или разработчик думает, что их написание занимает больше времени, чем написание реальной реализации.

Сегодня я хочу поделиться с вами отличным инструментом для тестирования, который может помочь вам понять, что тестирование может быть и увлекательным занятием. И этот инструмент называется Спок.

Прежде чем перейти к примерам, позвольте мне сначала объяснить, почему для меня хорошо писать тесты:

  • они проверяют, работает ли код - самый простой, мы пишем их, чтобы убедиться, что реализация нашего код работает,
  • регрессия - когда мы добавляем новую функциональность или реорганизуем приложение, мы хотим убедиться, что старые функции работают как раньше,
  • помогает сосредоточиться на проблеме, которую необходимо решить (TDD) - большинству разработчиков нравится писать код.Это не что-то новое, но иногда мы, и я говорю также о себе, хотим сразу же начать писать код сразу после того, как у нас появится новое требование. В целом, это хорошо, что мы так увлечены своей работой, но могут быть ситуации, когда мы думаем, что полностью понимаем требования, но это не так. И вот почему идея написания тестов в первую очередь, перед реализацией ( Test Driven Development , TDD), может помочь найти эти недоразумения, потому что сначала нам нужно подумать о том, что должно быть ожидаемым результатом , прежде чем думать о том, как мы будем хотелось бы достичь этого,
  • документация - тесты могут быть отличной живой документацией.Они описывают, как работает приложение, и следят за тем, чтобы оно оставалось неизменным. Для этого они должны быть написаны очень простым языком, чтобы их могли читать даже люди, не являющиеся разработчиками, а это может быть проблемой.

Если вы, как и я, Java-разработчик, и если вы пишете тесты, вы, вероятно, использовали тестовую среду JUnit 4 или JUnit 5 . В экосистеме JVM они иногда считаются единственными и единственными по умолчанию. Но они не единственные, из которых мы можем выбирать.Другими, также популярными, являются TestNG и Spock , о которых идет речь в этой статье.

Недавно я начал писать тесты с помощью Spock, что также означает, что я начал изучать новый язык программирования - Groovy. Если вы разработчик Java, вам будет очень легко изучить его, поэтому не беспокойтесь, если вы опасаетесь, что это может отнять у вас больше времени. К тому же Groovy, который я недавно нашел, имеет действительно хороший синтаксис и пытается сократить многие стандартные части кода Java.

После введения давайте рассмотрим возможности Spock , и сначала я расскажу, как перенести простой тест JUnit , а затем покажу, какие еще замечательные функции имеет этот фреймворк.

Базовая настройка проекта

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

В качестве примера я использую свою старую - шестиугольную библиотеку, которая представляет собой приложение Spring Boot , построенное с помощью Maven.

Чтобы сначала включить Spock, нам нужно добавить две зависимости в файл pom.xml , указанный ниже.

Поскольку тесты в Spock написаны на языке Groovy, мы должны указать Maven, чтобы он справился с этим, добавив следующий плагин.

Вот и все! Это минимальная конфигурация, необходимая для запуска тестов Spock!

Если вы хотите следовать соглашению Spock об именах тестов, которое называет их Spec (спецификации), а не Test , вам необходимо настроить плагин Maven Surefire для выполнения не только тестовых файлов с Test . в его названии, но также и те, которые имеют Spec в конце.

Миграция тестов JUnit

Начнем с простого примера JUnit5 :

Цель этого теста - проверить, стала ли книга доступной (в библиотеке) после ее добавления.Это очень просто, но вы, возможно, не знакомы с моим подходом к созданию простой реализации в памяти некоторых классов только для тестирования, например InMemoryBorrowingDatabase . Я обычно предпочитаю этот подход вместо создания макетов и заглушек. Подробнее об этом вы можете прочитать в другом моем блоге.

Чтобы перенести этот тест на Spock, давайте создадим новую папку с именем groovy в / src / test корня проекта. Затем создайте папки, которые будут соответствовать структуре пакета перенесенного теста, поэтому в моем случае это будет - io.wkrzywiec.hexagonal.library.domain.borrowing .

Там создайте файл Groovy - BorrowingFacadeSpec.groovy , внутри которого объявите класс с тем же именем.

Как видите, наш тестовый класс расширяет класс Specification , который необходим для каждого теста Spock.

Спецификация? Мы пишем тесты, а не документацию!

Если у вас такая же, как и выше, я частично с вами согласен.Со Spock мы пишем тесты, которые очень близки к естественному языку, что является фундаментальным принципом для этого фреймворка - писать живую документацию.

Теперь пришло время перенести первый тест, поэтому скопируйте его из исходного класса и вставьте в новый.

Теперь запустите тест (в вашей среде IDE или с mvn clean test ) и… все работает! Тест проходит. Молодец! Увидимся в следующий раз 😜… ладно, я просто пошутил.

Прежде всего, почему это сработало?

Groovy - это язык, расширяющий Java, поэтому все тесты Spock могут быть написаны на старой доброй Java .И это первый ключевой вывод - вам не нужно изучать новый язык (но я думаю, вам стоит, это действительно просто). Другой момент заключается в том, что Spock использует JUnit runner, поэтому он совместим с распространенными инструментами сборки (Maven, Gradle) и IDE (IntelliJ, Eclipse).

Я полагаю, что копирование и вставка тестов в новые классы с другим расширением не так уж и увлекательно, поэтому давайте немного изменим вышеприведенный тест, удалив все аннотации JUnit 5.

Следовательно, нам нужно удалить аннотации @Test , @DisplayName и @BeforeEach .С первым нет проблем, так как аннотировать методы тестирования в Spock не нужно. О втором вопросе я расскажу через минуту, так что перейдем сразу к последнему.

Аннотация @BeforeEach используется для методов, которые необходимо запускать перед каждым тестом в этом классе. В Spock есть та же концепция, но вместо аннотирования метода нам нужно дать ему специальное имя - setup () . Существуют также другие специальные методы, которые можно использовать для жизненного цикла теста, список доступен в официальных документах.

В результате получился такой класс:

Вы взволнованы? Возможно нет. Ведь здесь нет ничего нового. Но не волнуйтесь, сейчас время для больших перемен.

Прежде всего, в Groovy мы можем создавать методы с использованием ключевого мира def , который заменит public void в приведенном выше случае.

Далее Groovy позволяет называть методы строковыми литералами, поэтому вместо whenMakeBookAvailableCommandReceived_thenBookIsOnAvailableStatus () мы можем назвать этот метод «Сделать книгу доступной» () .Видеть? Теперь в методе могут быть пробелы и специальные знаки, что делает его более читабельным!

Тогда мы можем заменить комментарии //, когда, затем на так называемые блоки - , если , , когда и , то . Они разбили тест на разделы, чтобы сделать его более читабельным. Также мы можем добавить описания для каждого блока, чтобы дать подсказку человеку, который будет его читать.

В заданном разделе настроены все необходимые объекты и состояния.В , когда вызывается протестированная функция / класс / метод , и результат проверяется в , а затем в разделе .

Чтобы завершить этот раунд рефакторинга, нам нужно изменить раздел , затем , чтобы вместо обоих утверждений ( assertTrue ) мы могли преобразовать их в условия, которые описывают ожидаемое состояние более простым способом.

В итоге:

Круто, смотрится на порядок приятнее!

В качестве последнего штриха избавимся от точек с запятой ; , поскольку Groovy в них не нуждается.

Также нам не нужно указывать тип создаваемых объектов ( MakeBookAvailableCommand ), вместо этого мы можем использовать ключевое слово def (Groovy - это язык с динамической типизацией, он определяет тип объекта по его значению) сделать его короче.

И, наконец, как и в Groovy, мы можем получить доступ к закрытым полям, мы можем избавиться от конструктора для создания объекта MakeBookAvailableCommand и передать bookId в конструкторе, следовательно, окончательную версию теста (или функции, как она называется in Spock):

Отчет о неудачном тесте

Давайте взглянем на еще одну замечательную особенность Spock, которая печатает описательное объяснение, когда тест терпит неудачу.Чтобы представить это, я немного изменил условие в , затем в разделе , и после повторного запуска теста я получил следующее сообщение:

Как видите, Спок печатает все объекты, которые являются частью этого утверждения, чтобы упростить обнаружить ошибку.

На скриншоте выше вы можете видеть, что объект базы данных плохо напечатан, потому что в нем не реализован собственный метод toString () , как в классе AvailableBook .

Spring Boot Test в Spock

До сих пор пример, который я представлял, был довольно простым и быстрым модульным тестом, но что, если мы захотим написать интеграционный тест, например.грамм. соединиться с базой данных?

К счастью, Spock позволяет для этого интегрироваться со многими фреймворками, например, с Testcontainers или Spring Boot Tests.

Поэтому давайте обсудим еще один тестовый пример, который будет использовать аннотацию Spring @DataJpaTest .

Начиная сверху, @DataJpaTest отмечает аннотацию, которая объявляет контекст Spring только с теми компонентами, которые необходимы для подключения к базе данных с помощью JPA. Далее идет аннотация @Autowired , которая сообщает Spring внедрить определенный bean-компонент JokeRepository , который мы можем затем использовать для создания JokeService , чтобы он был связан с h3 в базе данных памяти во время тестирования.И, наконец, есть аннотация @Sql , которая указывает на файл, в котором есть оператор вставки SQL, который заполняет таблицу в базе данных перед запуском тестов.

Все эти три аннотации связаны исключительно со Spring и обычно используются в тестах JUnit. К счастью, в Spock мы тоже можем их использовать, не изучая новый способ запуска интеграционных тестов, что очень удобно.

Параметризованные тесты

Допустим, у вас есть метод, который имеет вход и в результате обеспечивает выход.А теперь вы хотите протестировать различное количество входов и проверить правильность вывода в каждом случае. Как бы вы написали для этого тест?

Вероятно, для каждого случая будет один метод тестирования, поэтому вы получите много кода, который большую часть времени повторяется. Но есть лекарство от этого - параметризованные тесты.

Идея довольно проста - вам нужно написать метод тестирования шаблона и сделать некоторые динамические значения (например, ввод и вывод), а затем предоставить набор этих значений.

Вот пример такого теста для работы калькулятора простого умножения, написанного на Spock.

Что у нас здесь? Как и в предыдущем примере, этот тест разбит на блоки, но здесь они называются , кроме и , где здесь .

В первом мы вызываем тестируемый метод с динамически назначаемыми параметрами - первый , второй и результат . Значения для всех из них расположены в , где блок в таблице, где каждый столбец для каждой переменной.Каждая строка в таблице представляет собой отдельный тестовый пример.

Этот тест настолько легко написать, что даже человек, не являющийся разработчиком, может написать хотя бы такую ​​тестовую таблицу со всеми обычными и угловыми случаями, чтобы убедиться, что программное обеспечение работает так, как оно было разработано.

Здесь только небольшое замечание, JUnit также предоставляет способ написания параметризованного теста, но я нашел его более сложным, чем разрешенный в Spock.

Тестовая документация

Последнее, что я хотел бы выделить, это то, что тесты, написанные с помощью Spock, настолько легко читаются, что их можно рассматривать как живую документацию.Как я уже упоминал в начале, если они сделаны правильно, они могут быть частью документации, и хорошо то, что она всегда будет правильной!

Конечно, не разработчики, вероятно, не хотят углубляться в код, как бы мы ни думали, что это легко. Поэтому можно сгенерировать отчет о тестировании в формате HTML, который может быть для них более удобным.

Чтобы включить это сначала, нам нужно добавить новую зависимость в файл pom.xml .

Затем добавьте com.athaydes.spockframework.report.IReportCreator.properties в каталог src / test / resources / META-INF / services . Содержимое файла:

Содержимое этого файла скопировано из официальной документации. Единственные настройки: com.athaydes.spockframework.report.showCodeBlocks = true (для отображения блоков кода в итоговом отчете) и com.athaydes.spockframework.report.outputDir = target / spock-reports , которые настраивают, где вывод отчет будет размещен.

Теперь, если вы запустите команду mvn clean test , внутри целевой папки появится новая папка с именем spock-reports , которая будет иметь индекс .html , который можно открыть в веб-браузере.

Вот главная страница этого отчета.

А вот подробный вид BorrowingFacadeSpec

Круто, выглядит красиво! Но это еще не все. Мы можем добавить сюда больше описаний, чтобы отчет было еще проще понять! Для этого вернемся к нашему коду и добавим новые аннотации в класс Spec.

Здесь я добавил три новые аннотации:

  • @Title - краткое название спецификации, написанное простым английским языком,
  • @Narrative - это более длинный заголовок, он может дать некоторую предысторию и дополнительные пояснения ,
  • @Subject - здесь мы отмечаем, какой класс взят под тест (иногда сложно определить, какой именно).

Итоговый отчет выглядит следующим образом.

Если вы хотите, чтобы шаблон отчета можно было настроить, более подробную информацию можно найти в официальной документации.

Заключение

Надеюсь, вам понравилась эта статья, и вы хотите попробовать ее самостоятельно. Все, что было здесь представлено, является лишь верхушкой айсберга функций, которые предоставляет Groovy и Spock, поэтому я рекомендую вам проверить официальную документацию, что действительно здорово, или прочитать книгу, которую я упоминаю в справочнике . раздел.

Удачного тестирования! 🙂🔥🧪

Проверка параметров Вызов метода макета в Spock

  1. Кодирование
  2. Groovy
  3. Spock

Arthur Arts написал в блоге сообщение об использовании ArgumentCaptor для общих коллекций с Mockito. С помощью ArgumentCaptor в Mockito параметры вызова метода фиктивного объекта фиксируются и могут быть проверены с помощью утверждений. В Spock мы также можем удерживать аргументы, которые передаются при вызове метода макета, и мы можем писать утверждения для проверки параметров на предмет определенных условий.Когда мы создаем макет в Spock и вызываем метод на макете, аргументы сопоставляются с использованием реализации типа аргумента equals () . Если они не равны, Спок сообщит нам о том, что вызовов метода слишком мало. Покажем это на примере. Сначала мы создаем несколько классов, которые хотим протестировать:

  пакет com.jdriven.spock

class ClassUnderTest {

    личное заключительное приветствие

    ClassUnderTest (последнее приветственное приветствие) {
        это.приветствие = приветствие
    }

    Строковое приветствие (окончательный список <Лицо> людей) {
        welcome.sayHello (люди)
    }
}

пакет com.jdriven.spock

interface Greeting {
    Строка sayHello (окончательный список <Лицо> людей)
}

пакет com.jdriven.spock

@ groovy.transform.Canonical
class Person {
    Имя строки
}
  

Теперь мы можем написать спецификацию Spock для тестирования ClassUnderTest . Теперь мы будем использовать сопоставление аргументов по умолчанию для макета, предоставленного Споком.

  пакет com.jdriven.spock

import spock.lang.Specification

class SampleSpecification расширяет Specification {

    def "check sayHello вызывается с людьми в методе приветствия" () {
        данный:
        финальное приветствие = Mock ()
        final ClassUnderTest classUnderTest = новый ClassUnderTest (приветствие)

        а также:
        final Список  people = ['mrhakis', 'hubert']. collect {new Person (name: it)}

        когда:
        final String welcomeResult = classUnderTest.greeting (люди)

        тогда:
        1 * приветствие.sayHello ([новый человек (имя: 'mrhaki'), новый человек (имя: 'hubert')])
    }

}
  

Когда мы выполняем спецификацию, мы получаем ошибку с сообщением о том, что слишком мало вызовов:

  ...
Слишком мало вызовов для:

1 * welcome.sayHello ([новый человек (имя: 'mrhaki'), новый человек (имя: 'hubert')]) (0 вызовов)

Непревзойденные вызовы (упорядоченные по сходству):

1 * приветствие.sayHello ([com.jdriven.spock.Person (mrhakis), com.jdriven.spock.Person (hubert)])
...
  

Чтобы захватить аргументы, такие как ArgumentCaptor, мы должны использовать другой синтаксис для вызова метода в макете.На этот раз мы определяем, что метод может быть вызван с любым количеством аргументов ( (* _) ), а затем использовать закрытие для захвата аргументов. Аргументы передаются закрытию в виде списка. Затем мы можем получить желаемый аргумент и написать для него утверждение assert.

  пакет com.jdriven.spock

import spock.lang.Specification

class SampleSpecification расширяет Specification {

    def "check sayHello вызывается с людьми в методе приветствия" () {
        данный:
        финальное приветствие = Mock ()
        final ClassUnderTest classUnderTest = новый ClassUnderTest (приветствие)

        а также:
        final Список <Личность> люди = ['mrhakis', 'hubert'].собрать {новое лицо (имя: оно)}

        когда:
        final String welcomeResult = classUnderTest.greeting (люди)

        тогда:
        1 * приветствие.sayHello (* _) >> {аргументы ->
            окончательный список  argumentPeople = arguments [0]
            assert argumentsPeople == [новый человек (имя: 'mrhaki'), новый человек (имя: 'hubert')]
        }
    }

}
  

Мы снова запускаем спецификацию, и она снова терпит неудачу (конечно), но на этот раз мы получаем сообщение с подтверждением:

 ...
Неудовлетворительное состояние:

argumentsPeople == [новый человек (имя: 'mrhaki'), новый человек (имя: 'hubert')]
| | | |
| | | com.jdriven.spock.Person (hubert)
| | com.jdriven.spock.Person (mrhaki)
| ложный
[com.jdriven.spock.Person (mrhakis), com.jdriven.spock.Person (hubert)]

    в com.jdriven.spock.SampleSpecification.check sayHello вызывается с людьми в приветствии method_closure2 (SampleSpecification.отличный: 25)
...
  

Код, написанный с помощью Spock 0.7-groovy-2.0

Spring and Spock: Happy Together

Вышеупомянутый тест представляет собой модульный тест, в котором тестируемым методом является метод AccountService createNewAccount. Все зависимости метода createNewAccount имитируются, как вы можете видеть в начале теста. Блок given: устанавливает данные для теста, блок when: выполняет тестируемый метод, а блок then: - это то место, где делаются утверждения для проверки того, что произошло.Обратите внимание на отсутствие ключевого слова assert, используемого в JUnit. Утверждение является неявным - каждая строка завершится ошибкой, если выражение ложно, и пройдёт, если выражение истинно. Подробное описание каждого утверждения в тесте выходит за рамки данной статьи. Однако я хотел бы выделить утверждение accountDAO.save (_). Спок сделает аргумент, переданный методу save (), доступным в закрытии, которое следует за вызовом метода, и затем его можно будет проверить в закрытии (где необходимо использовать ключевое слово assert ).После проверки аргумента объект persistedAccount, который был создан в начале теста, затем возвращается из имитируемого вызова метода save ().

Как обсуждалось в блогах Spring и Mockito, бывают случаи, когда вы хотите написать тест, который загружает контекст приложения Spring, чтобы убедиться, что автоматическое подключение Spring работает должным образом, или, например, для проверки того, что код доступа к данным работает с запись и чтение из базы данных. Со Споком это просто. Все, что вам нужно сделать, это включить модуль Spock Spring в качестве зависимости в ваш сценарий сборки.Модуль Спока Spring обеспечивает интеграцию с Spring TestContext Framework. Затем, когда вы включаете в свой тест аннотацию, которая распознается как аннотация Spring, такая как @ContextConfiguration, @SpringBootTest или @WebMvcTest, контекст приложения Spring будет загружен и компоненты Spring будут доступны в тесте. Ниже приведен пример теста Spring, который используется для проверки сохранения объекта Account в базу данных и отражает тот же тест в сообщении блога Spring и Mockito:

Места, где вам ДЕЙСТВИТЕЛЬНО НУЖНО использовать ключевое слово assert в утверждениях Spock

Убедитесь, что вы знаете все места, где ключевое слово assert в Spock необходимо, чтобы избежать ложного чувства безопасности и тестов, которые - по сути - ничего не делают.

Введение

Spock значительно упрощает создание тестов. Одним из улучшений является возможность пропустить ключевое слово assert в блоке проверки (, затем или , кроме ). Это очень удобно, но новички Спока (и на основании моих тренировок по тестированию кода
даже более опытные разработчики) могут не знать, что при некоторых обстоятельствах это ключевое слово требуется, что в результате делает этот конкретный тест бесполезным. После лекции этого сообщения в блоге вы узнаете места (ситуации), в которых клавиатура assert является обязательной.

Начнем с самого начала.

Утверждения мощности

Power assertions - это продвинутый механизм утверждений, который очень содержательно отображает неудавшееся утверждение. Например:

  утверждение (2 + 3) * 4! = (2 * 4) + (3 * 4)
  

результаты:

  Ошибка утверждения:

утверждать (2 + 3) * 4! = (2 * 4) + (3 * 4)
          | | | | | |
          5 20 ложь 8 20 12
  

Это большой шаг вперед по сравнению с классическим утверждением assertEquals () только с Ошибка утверждения в JUnit.

Что приятно, работает и для объектов, и для вызовов методов:

  Ошибка утверждения:

assert ann.name == bob.name && ann.age == bob.age
       | | | | | |
       | Энн | | Боб ложь
       | | Человек (имя: Боб, возраст: 7)
       | ложный
       Человек (имя: Энн, возраст: 4)
  

Утверждения Power изначально были разработаны для Spock, но позже они были перенесены в Groovy 1.7 (2009). В настоящее время они являются одной из главных особенностей Groovy.
в контексте тестирования (в общем, не только со Споком).

Необязательно «утверждать»

Как я уже упоминал во введении, Спок, используя магию Groovy (в первую очередь, преобразования AST и перегрузку операторов), генерирует и автоматически обрабатывает различные аспекты тестов, чтобы сделать его создание как можно более простым. Среди прочего, это видно при тестировании исключений - скрытый try..catch вокруг , когда блокирует или неявные аргументы метода в параметризованных тестах.

Еще один случай упрощения в необязательном ключевом слове assert с утверждениями.Например:

  ...
ожидать:
    утверждать numberOfItems == 2
  

можно упростить до

  ...
ожидать:
    numberOfItems == 2
  

Ключевое слово assert автоматически добавляется преобразованием Spock AST в блоки , затем или ожидают блоков, если есть логическое значение, а также любой непустой оператор, который можно оценить с помощью Groovy Truth
.

Это открывает разные возможности:

 ...
когда:
    Список  overdueInvoices = userAccount.getOverdueIncoives ()
тогда:
    overdueInvoices // коллекция не может быть нулевой или пустой, чтобы не сработать
  

Под капотом преобразование Spock AST обнаруживает все эти места, чтобы улучшить их с помощью assert , но есть некоторые ограничения.

Обязательно "assert"

Есть места (ситуации), где assert нельзя пропустить. Это особенно важно знать, так как ошибки не отображаются.Утверждения просто не работают , что делает их бесполезными. Или, что еще хуже, дает ложное ощущение безопасности - эти тесты ничего не проверяют.

Заявление охранника

Первый случай - это так называемое охранное утверждение. Иногда, в основном при интеграционном / приемочном тестировании, возникает необходимость проверить начальное состояние (например, количество записей в базе данных, чтобы убедиться, что некоторые ранее добавленные новые - плохо написанные - тесты не повредили наши тестовые данные).

Spock заботится только о , тогда и ожидают блоков в контексте неявного assert .Ключевое слово assert не добавляется автоматически в блок данного и должно быть размещено вручную.

  предоставлено:
    Список  initialInvoices = legacyRepository.getUserInvoices (USER_ID)
    assert initialInvoices.size () == 0 // 'assert' обязательно - 'initialInvoices.size () == 0' ничего не делает!
когда:
    issueInvoice (...)
тогда:
    legacyRepository.getUserInvoices (USER_ID) .size () == 1 // 'assert' не требуется в 'then'
  

Утверждение при выполнении метода

Другая ситуация относится к блоку , затем (или , ожидая ).Иногда набор утверждений используется более чем в одном тесте. Может быть удобно извлечь их в отдельный метод (размещенный локально в тестовом классе, в суперклассе или в трейте):

  когда:
        ...
    тогда:
        assertCompatibilityWithArticle17OfEUDirective (socialMediaSubmission)
}

private void assertCompatibilityWithArticle17OfEUDirective (SocialMediaSubmission submission) {
    assert submission.field1 == ... // 'assert' является обязательным
    утверждать подчинение.field2 == ...
}
  

Для Spock вызов метода обрабатывается как обычное значение, подлежащее оценке (если метод не является недействительным). Следовательно, если метод возвращает false или 0 или пустую коллекцию, тест не выполняется. В противном случае, если метод имеет тип возвращаемого значения void , тест проходит успешно.

Требуется позаботиться об утверждениях вручную, но явно поместить ключевое слово assert в метод.

Утверждение при выполнении закрытия

Аналогичный класс задач ставит утверждения в замыканиях.Они могут использоваться не так часто, как в методах, но это еще больше увеличивает риск неправильного использования.

  ...
ожидать:
    GParsPool.withPool {
        ["1"]. EachParallel CorrelationIdUpdater.wrapClosureWithId {
            assert it == "1" // обязательно "assert"
        }
    }
  

с Groovy 3 (и Spock 2.0-M2 +
) то же самое относится к утверждениям в лямбда-выражениях.

Сводка

Spock и Groovy (как и любой инструмент или язык) можно использовать более или менее «беспорядочно».Groovy, будучи очень гибким и, возможно, динамическим языком, делает его еще проще. «С большой силой приходит большая ответственность» - пословица, популяризированная франшизой о Человеке-пауке, может быть применена и к Споку. Пользователи должны знать об ограничениях и крайних случаях, чтобы избежать ошибок.

Между прочим, в контексте утверждений это угловые случаи, когда утверждение (-подобное) выражение просто игнорируется, что намного хуже, чем просто ошибка. Однако это не единственное место. Несколько лет назад я делал 50-минутные презентации.
как раз о «Интересных уголках и закоулках Спока» (слайды и видео
).И уж точно не исчерпал тему :-).

Свинцовая фотография основана на неофициальном предложении логотипа Spock от 2014 года Сёреном Бергом Глазиусом и знаках безопасности труда Clker-Free-Vector-Images, опубликованном на Pixabay.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *