SlideShare a Scribd company logo
Тестируем
Вместе со Spring Boot Test
@tolkv
@lavcraft
@jekaborisov
@jeka1978
В программе
Тестирование живого приложения
● Старые подходы
○ @ContextConfiguration
○ @ContextHierarchy && @DirtiesContext
○ @ActiveProfiles
● Что нового нам приготовил Spring Boot?
○ @SpringBootTest
○ @TestConfiguration
○ @MockBean && @SpyBean && @*Beans
○ @DataJpaTest
○ @WebMvcTest
● Кэширование spring контекстов
● Шкала тестов
Шкала Тестов
Unit
Component Test
Microservice Test
System Test
➯
➯
➯
➯
Дано
Чат поддержки разработчиков
assistant
yegor256-assistant
jbaruch-assistant
Queue
мы
web
rest
rest
rest
Default
Answers
Database
Эксперты
Дано
Чат поддержки разработчиков
assistant
yegor256-assistant
jbaruch-assistant
Queue
мы
web
rest
rest
rest
Default
Answers
Database
А давайте тестировать
А давайте тестировать
router
yegor256-assistant
jbaruch-assistant
Default
Answers
Database
Yegor256 Resolver
$tokens.yegor256
JBaruch Resolver
...
$tokens.jbaruch
А давайте тестировать. Тест #1
1. Пишем Egor256WordsFrequencyResolverTest.
А давайте тестировать. Тест #1
1. Пишем Egor256WordsFrequencyResolverTest.
2. Как ни крути, но нужен более “интеграционный тест”
Шкала Тестов
Unit
➯
Шкала Тестов
Unit
Component Test
➯
➯
1. Пишем TextBasedQuestionTypeResolverTest
А давайте тестировать. Тест #2
Шкала Тестов
Unit
Component Test
➯
➯
1. Пишем TextBasedQuestionTypeResolverTest
2. Вручную создаем три бина для тестирования
TextBasedQuestionTypeResolver на примере Барух vs Егор кейса
А давайте тестировать. Тест #2
1. Пишем TextBasedQuestionTypeResolverTest
2. Вручную создаем три бина для тестирования
TextBasedQuestionTypeResolver на примере Барух vs Егор кейса
3. Все падает потому что не подтягивается application.yml
4. @PropertySource …
А давайте тестировать. Тест #2
@SpringApplicationConfiguration(classes =
....class,
initializers =
YamlFileApplicationContextInitializer.class)
public class OurTest {
@Test
public test(){
...
}
}
А давайте тестировать. Тест #2
Spring Boot обновки
1. @SpringBootTest
2. @TestConfiguration
3. @MockBean && @SpyBean
4. @DataJpaTest
5. @MockMvcTest
Углубляемся в Spring. Тест #2
1. Применяем @SpringBootTest
Углубляемся в Spring. Тест #2
1. Применяем @SpringBootTest
2. Долго…
3. @SpringBootTest(classes = ...class)
Углубляемся в Spring. Тест #2
1. Применяем @SpringBootTest
2. Долго…
3. @SpringBootTest(classes = ...class)
4. Стало быстрее
Углубляемся в Spring. Тест #2
1. Применяем @SpringBootTest
2. Долго…
3. @SpringBootTest(classes = ...class)
4. Стало быстрее
5. С кэшированием конфигураций – еще быстрее
Углубляемся в Spring. Тест #2
@ContextHierarchy({
@ContextConfiguration(classes=WordsCommonConfiguration.class),
@ContextConfiguration(classes= ...class)
})
Углубляемся в Spring. Тест #2
@ContextHierarchy({
@ContextConfiguration(classes=WordsCommonConfiguration.class),
@ContextConfiguration(classes=....class)
})
Порядок важен! Т.к другая конфигурация использует бины из
WordsCommonConfiguration
Но ничего не закешировалось. Тест #2
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
@Import – должен быть нигде
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
@Import – должен быть нигде
@ActiveProfiles – один на всех
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
@Import – должен быть нигде
@ActiveProfiles – один на всех
SpringBootTest .properties – должны быть одинаковые
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
@Import – должен быть нигде
@ActiveProfiles – один на всех
SpringBootTest .properties – должны быть одинаковые
Порядок важен!
Любая перестановка – cache miss
Но ничего не закешировалось. Тест #2
@SpringBootTest(properties={"a=b","b=a"})
@SpringBootTest(properties={"b=a","a=b"})
Но ничего не закешировалось. Тест #2
@SpringBootTest(properties={"a=b","b=a"})
@SpringBootTest(properties={"b=a","a=b"})
Кэш не сработает
Но ничего не закешировалось. Тест #2
@SpringBootTest – должен быть везде
@Import – должен быть нигде
@ActiveProfiles – один на всех
SpringBootTest .properties – должны быть одинаковые
Хрупкий кэш
Все может привести к потере кэша
Пользуемся силой
logging.level.org.springframework.test.context.cache=debug
Б – безопасность
@SpringBootTest
@ActiveProfiles("yegor_vs_jbaruch")
public abstract class ResolversAbstractCommonConfiguration {
}
А если наоборот?
А если наоборот?
@DirtiesContext(...)
А если наоборот?
@DirtiesContext(...)
methodMode() default MethodMode.AFTER_METHOD
classMode() default ClassMode.AFTER_CLASS
...
Проверим наши знания. Тест #3
1. протестируем AnswerCacheServiceJPABackend
Spring Boot обновки
1. @SpringBootTest
2. @MockBean && @SpyBean
3. @TestConfiguration
4. @DataJpaTest
5. @MockMvcTest
Синергия с Mockito
1. @MockBean/@SpyBean
2. @PostConstruct для настройки
3. @Bean для настройки конкретных моков
1. Запустим все тесты
Все ли хорошо?
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
Все ли хорошо?
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
3. Загрузил бины из другого теста!
Все ли хорошо?
Spring Boot обновки
1. @SpringBootTest
2. @MockBean && @SpyBean
3. @TestConfiguration
4. @DataJpaTest
5. @MockMvcTest
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
3. Загрузил бины из другого теста!
4. @TestConfiguration!
Все ли хорошо?
1. Не сканируется @SpringBootTest
2. Не сканируется другими конфигурациями и тестами
3. Не прерывает процесс сканирования @SpringBootTest
@TestConfiguration
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
3. Загрузил бины из другого теста!
4. @TestConfiguration!
5. DeveloperAssistantApplicationTests.contextLoad работает
Все ли хорошо?
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
3. Загрузил бины из другого теста!
4. @TestConfiguration!
5. DeveloperAssistantApplicationTests.contextLoad работает
6. А AnswerCacheServiceJPABackendTest перестал
7. Загрузил бины из другого теста!
Все ли хорошо?
1.
Как @SpringBootTest сканирует пакеты
Два процесса сканирования
1. @SpringBootTest сканирование
2. @SpringBootApplication (@ComponentScan)
Два процесса сканирования
1. @SpringBootTest сканирование
2. @SpringBootApplication (@ComponentScan)
Вверх
Два процесса сканирования
1. @SpringBootTest сканирование
2. @SpringBootApplication (@ComponentScan) Вниз
Вверх
@SpringBootTest
Два процесса сканирования
@SpringBootTest
Два процесса сканирования
@SpringBootTest
Два процесса сканирования
Два процесса сканирования
@SpringBootTest
Два процесса сканирования
@SpringBootTest
test classpath extends main classpath
Два процесса сканирования
@SpringBootTest
@SpringBootApplication
src/main будет так же просканирован*
test classpath extends main classpath
Два процесса сканирования
@SpringBootTest
@SpringBootApplication
src/main будет так же просканирован*
test classpath extends main classpath
Два процесса сканирования
@SpringBootTest
@SpringBootApplication
src/main будет так же просканирован*
test classpath extends main classpath
Два процесса сканирования
@SpringBootTest
@SpringBootApplication
src/main будет так же просканирован*
test classpath extends main classpath
Два процесса сканирования
@SpringBootTest
@SpringBootApplication
src/main будет так же просканирован*
test classpath extends main classpath
Тоже и с
src/main/**
1. Запустим все тесты
2. DeveloperAssistantApplicationTests.contextLoad падает
3. Загрузил бины из другого теста!
4. @TestConfiguration!
5. DeveloperAssistantApplicationTests.contextLoad работает
6. А AnswerCacheServiceJPABackendTest перестал
7. Загрузил бины из другого теста!
8. @SpringBootConfiguration остановит сканирование
Все ли хорошо?
@SpringBootConfiguration
public class StopConfiguration {
}
Чиним
Component Tests
Spring Boot обновки
1. @SpringBootTest
2. @TestConfiguration
3. @MockBean && @SpyBean
4. @DataJpaTest
5. @MockMvcTest
@DataJpaTest
1. сканирует все репозитории
@DataJpaTest
1. сканирует все репозитории
2. конфигурирует EntityManager
3. загружает другие конфигурации
1. сканирует все репозитории
2. конфигурирует EntityManager
3. загружает другие конфигурации
4. фильтрует все не относящееся к Data/JPA
Применим знания
@DataJpaTest
Тестируем DefaultAssistantJpaBackendTest
1. @DataJpaTest не загружает компоненты Spring
Тестируем DefaultAssistantJpaBackendTest
1. @DataJpaTest не загружает компоненты Spring
2. Делаем конфигурацию, загружаем недостающее
Тестируем DefaultAssistantJpaBackendTest
1. @DataJpaTest не загружает компоненты Spring
2. Делаем конфигурацию, загружаем недостающее
3. Ничего не работает, из за @SpringBootConfiguration
Тестируем DefaultAssistantJpaBackendTest
1. @DataJpaTest не загружает компоненты Spring
2. Делаем конфигурацию, загружаем недостающее
3. Ничего не работает, из за @SpringBootConfiguration
4. Переносим в новый package – все @*Test тесты должны быть
изолированы
@WebMvcTest
1. Не грузит компоненты спринга
@WebMvcTest
1. Не грузит компоненты спринга
2. Грузит только то что относится к Web
@WebMvcTest
1. Не грузит компоненты спринга
2. Грузит только то что относится к Web
3. Сразу изолируем в отдельный пакет
Получаем суперспособность:
@Autowired
MockMvc mockMvc;
Где настраивать @MockBean
1. В @*Configuration –
если мок нужен на этапе создания контекста
2. В тесте (@Before/setup/etc)
если мок нужен только на этапе выполнения теста
Что же делает @SpringBootTest
1. Без classes
a. сканирует со своего пакета “вверх” в поисках @SpringBootConfiguration
i. игнорирует остальных
b. падает если не находит или находит несколько в одном пакете
2. classes=~@Configuration
a. поднимет только указанные конфигурации
3. classes=~@TestConfiguration
a. поднимет указанный контекст и продолжит сканирование. см пункт 1
Зачем нужен @SpringBootTest
1. Полный тест на весь контекст
2. Изменение properties
3. Тесты с определенным скоупом – пакет/конфигурация/автоскан
Зачем нужен @TestConfiguration
1. Если нужно не прерывать сканирование @SpringBootTest
2. Изолированные тесты (игнорируется при сканировании)
Зачем нужен @SpringBootConfiguration
1. Прерывать сканирование инициированное @SpringBootTest
Выводы
1. Spring для Unit тестирования может быть быстрым
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
3. Для тестов – только @TestConfiguration
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
3. Для тестов – только @TestConfiguration
4. Изолировать группы тестов с помощью
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
3. Для тестов – только @TestConfiguration
4. Изолировать группы тестов с помощью
a. выделения в пакеты
b. @SpringBootConfiguration
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
3. Для тестов – только @TestConfiguration
4. Изолировать группы тестов с помощью
a. выделения в пакеты (особенно для @*Test)
b. @SpringBootConfiguration
5. SpringBootTest надо в основном использовать
для микросервис тестов
Выводы
1. Spring для Unit тестирования может быть быстрым
2. Кэш контекстов – хрупкая штука
3. Для тестов – только @TestConfiguration
4. Изолировать группы тестов с помощью
a. выделения в пакеты
b. @SpringBootConfiguration
5. SpringBootTest надо в основном использовать
для микросервис тестов
6. Если есть DirtiesContext – стоит задуматься :)
Шкала Тестов
Unit
Component Test
Microservice Test
System Test
➯
➯
➯
➯
Следующий
доклад
Unit Component Microservice
Что нужно Junit/Mockito @ContextConfiguration @SpringBootTest
Кто управляет new Spring Spring Boot
QA
105
1. @ComponentScan > @TestConfiguration > @Configuratin
! @ComponentScan находит даже @TestConfiguration
2. @DataJpaTest > @SpringBootTest
3. @DataJpaTest и @WebMvcTest должны быть в отдельных пакетах
Если есть сомнения – смотри автора! Juergen Hoeller*
Выводы

More Related Content

What's hot

Spock - the next stage of unit testing
Spock - the next stage of unit testingSpock - the next stage of unit testing
Spock - the next stage of unit testing
jugkaraganda
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)Yandex
 
Spring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny BorisovSpring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny Borisov
JavaDayUA
 
Оценка качества автотестов
Оценка качества автотестовОценка качества автотестов
Оценка качества автотестов
SQALab
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
SQALab
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?
SQALab
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрования
bearoff
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
Fedor Malyshkin
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
Sergey Grinev
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
Ivan Krylov
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
SQALab
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST API
Pavel Asanov
 
Python Meetup
Python Meetup Python Meetup
Python Meetup
iQSpace
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
 Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ  Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
it-people
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ontico
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
SQALab
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
WrikeTechClub
 
Speeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI testsSpeeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI tests
Anton Stepanenko
 
Gradle
GradleGradle
Gradle
Ilya Lapitan
 

What's hot (20)

Spock - the next stage of unit testing
Spock - the next stage of unit testingSpock - the next stage of unit testing
Spock - the next stage of unit testing
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)
 
Spring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny BorisovSpring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny Borisov
 
Оценка качества автотестов
Оценка качества автотестовОценка качества автотестов
Оценка качества автотестов
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Selenium, а давай подождем?
Selenium, а давай подождем?Selenium, а давай подождем?
Selenium, а давай подождем?
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрования
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST API
 
Python Meetup
Python Meetup Python Meetup
Python Meetup
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
 Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ  Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
Умный компилятор в Java 9: насколько он умён? Сергей Петунин, Центр ИТ
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Speeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI testsSpeeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI tests
 
Gradle
GradleGradle
Gradle
 

Similar to Spring Boot Test horror

Spring the ripper
Spring the ripperSpring the ripper
Spring the ripper
Evgeny Borisov
 
Unit тестирование
Unit тестированиеUnit тестирование
Unit тестированиеMaxim Volchenko
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
SQALab
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
FDConf
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
COMAQA.BY
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
 
Spring puzzlers 2
Spring puzzlers 2Spring puzzlers 2
Spring puzzlers 2
Evgeny Borisov
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполненияАвтотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
SQALab
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
SPB SQA Group
 
Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)
Ontico
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
7bits
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичковOvadiah Myrgorod
 
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
7bits
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumSQALab
 
Jmeter
JmeterJmeter
Jmeter
Elena Korzh
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Mail.ru Group
 

Similar to Spring Boot Test horror (20)

Spring the ripper
Spring the ripperSpring the ripper
Spring the ripper
 
Unit тестирование
Unit тестированиеUnit тестирование
Unit тестирование
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Spring puzzlers 2
Spring puzzlers 2Spring puzzlers 2
Spring puzzlers 2
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполненияАвтотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичков
 
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
 
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
 
Jmeter
JmeterJmeter
Jmeter
 
Spring puzzlers
Spring puzzlersSpring puzzlers
Spring puzzlers
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 

More from Кирилл Толкачёв

Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
Кирилл Толкачёв
 
Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline
Кирилл Толкачёв
 
Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?
Кирилл Толкачёв
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG Екатеринбург
Кирилл Толкачёв
 
Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...
Кирилл Толкачёв
 
CD with Jenkins. Lessons Learned
CD with Jenkins. Lessons LearnedCD with Jenkins. Lessons Learned
CD with Jenkins. Lessons Learned
Кирилл Толкачёв
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016
Кирилл Толкачёв
 
Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016
Кирилл Толкачёв
 
Java Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real worldJava Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real world
Кирилл Толкачёв
 
Joker 2015 Wild microSERVICES
Joker 2015 Wild microSERVICESJoker 2015 Wild microSERVICES
Joker 2015 Wild microSERVICES
Кирилл Толкачёв
 

More from Кирилл Толкачёв (10)

Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline Jenkins Imperative Pipeline vs Declarative Pipeline
Jenkins Imperative Pipeline vs Declarative Pipeline
 
Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG Екатеринбург
 
Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...
 
CD with Jenkins. Lessons Learned
CD with Jenkins. Lessons LearnedCD with Jenkins. Lessons Learned
CD with Jenkins. Lessons Learned
 
Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016Эволюционный дизайн. Joker Students Day 2016
Эволюционный дизайн. Joker Students Day 2016
 
Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016
 
Java Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real worldJava Day Minsk 2016 Keynote about Microservices in real world
Java Day Minsk 2016 Keynote about Microservices in real world
 
Joker 2015 Wild microSERVICES
Joker 2015 Wild microSERVICESJoker 2015 Wild microSERVICES
Joker 2015 Wild microSERVICES
 

Spring Boot Test horror