Написание модульных и интеграционных тестов - один из самых часто пренебрегаемых аспектов разработки программного обеспечения. Слишком часто разработчики говорят "но у меня на компьютере работает!" когда проект считается завершенным, только чтобы обнаружить, что когда он выходит из среды разработки, вещи не работают так, как ожидалось. Хорошо написанные модульные и интеграционные тесты помогают решить эту проблему и практически всегда сокращают общее время разработки, а не увеличивают его.
Курс сосредоточен на написании модульных и интеграционных тестов на языке Go (Golang), современном, типобезопасном, скомпилированном и чрезвычайно быстром языке программирования. Он идеально подходит для создания безопасных, масштабируемых, невероятно быстрых веб-приложений и имеет мощные инструменты тестирования, встроенные прямо в него.
В этом курсе мы создадим четыре простых приложения и тщательно протестируем их:
Консольное приложение (CLI), которое пытается определить, является ли введенное пользователем число простым или нет;
Простое веб-приложение, которое позволяет пользователю войти в систему и загрузить фотографию профиля;
Простой REST API, построенный на той же кодовой базе, что и веб-приложение, который позволяет пользователям аутентифицироваться с помощью JWT-токенов и выполнять операции с базой данных Postgres. Мы рассмотрим весь процесс аутентификации, включая использование токенов обновления, и тщательно протестируем все аспекты кода.
Простое веб-приложение с одной страницей (SPA), написанное на Vanilla JavaScript, которое демонстрирует, как использовать JWT и Refresh Tokens в SPA и как протестировать его функциональность.
Для каждого из этих проектов мы изучим, как писать модульные тесты для всей функциональности. Мы узнаем, как тестировать (среди прочего):
Маршруты приложения
Обработчики приложений
Как тестировать несколько сценариев, путем написания и использования тестовых таблиц
Операции с базами данных (используя шаблон Repository)
Промежуточное ПО приложения
Аутентификация пользователя (с помощью сессий)
Аутентификация пользователя (с помощью JWT-токенов)
Генерация и проверка JWT-токенов
Генерация и проверка токенов обновления
Тестирование пользовательского ввода
Запись в терминал
Добавление файлов cookie к запросу
Чтение файлов cookie из ответа
По окончании курса вы получите твердое понимание того, как писать эффективные тесты и тестируемый код.
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Урок 1.
00:05:34
Introduction
Урок 2.
00:01:02
About me
Урок 3.
00:01:15
Asking for help
Урок 4.
00:01:07
Mistakes: we all make them.
Урок 5.
00:00:30
What we'll cover in this section
Урок 6.
00:01:28
Installing Go
Урок 7.
00:01:30
Installing an IDE
Урок 8.
00:00:52
Installing Docker
Урок 9.
00:01:04
What we'll cover in this section
Урок 10.
00:06:21
Creating a simple command line application
Урок 11.
00:07:58
Writing a test for the isPrime() function
Урок 12.
00:07:21
Improving our test with table tests
Урок 13.
00:02:30
Checking test coverage
Урок 14.
00:02:49
Completing our table tests
Урок 15.
00:11:26
Improving our program to allow for user entered information
Урок 16.
00:07:10
Writing a test for the prompt() function
Урок 17.
00:02:30
Writing a test for the intro() function
Урок 18.
00:13:36
Testing user input - writing a test for the checkNumbers() function
Урок 19.
00:05:58
Updating readUserInput to make it testable, and then testing it
Урок 20.
00:00:45
What we'll cover in this section
Урок 21.
00:01:38
Running a single test
Урок 22.
00:02:00
Running groups of tests (test suites)
Урок 23.
00:00:43
What we'll cover in this section
Урок 24.
00:10:16
Creating a simple web app
Урок 25.
00:12:00
Setting up a route and handler for the home page
Урок 26.
00:11:29
Testing our application routes
Урок 27.
00:10:01
Testing Handlers: the Home handler
Урок 28.
00:12:23
Setting up some simple middleware
Урок 29.
00:02:46
Trying out our new addIPToContext middleware
Урок 30.
00:12:12
Testing our middleware
Урок 31.
00:04:30
Testing ipFromContext
Урок 32.
00:02:57
Creating a login form
Урок 33.
00:04:44
Setting up a route and stub handler for the login form
Урок 34.
00:00:35
What we'll cover in this section
Урок 35.
00:09:33
Setting up validation logic
Урок 36.
00:08:25
Testing validation logic
Урок 37.
00:05:19
Completing the tests for our validation logic
Урок 38.
00:03:27
Trying out validation with our login form
Урок 39.
00:00:56
What we'll cover in this section
Урок 40.
00:04:29
Setting up a test enviroment with testing.M
Урок 41.
00:04:26
Simplifying our templates using a layout
Урок 42.
00:02:02
Installing a sessions package
Урок 43.
00:04:11
Adding session to App config, and creating a SessionManager
Урок 44.
00:07:39
Trying out our sessions
Урок 45.
00:11:48
Updating our tests
Урок 46.
00:06:19
Improving our test for the Home handler
Урок 47.
00:07:37
Testing the render function with a bad template
Урок 48.
00:01:14
What we'll cover in this section
Урок 49.
00:06:06
Installing postgres with Docker
Урок 50.
00:10:27
Setting up a database connection
Урок 51.
00:04:03
Adding the data package for models and db package for database access
Урок 52.
00:03:35
Making sure our web app can connect to our database
Урок 53.
00:01:58
Closing our database pool gracefully, and resetting template path in tests
Урок 54.
00:08:29
Creating a stub profile page
Урок 55.
00:06:54
Adding messages to our template data and template files
Урок 56.
00:05:33
Adding true authenication to the Login handler
Урок 57.
00:19:18
Testing the Login handler
Урок 58.
00:04:25
Adding Auth middleware
Урок 59.
00:06:54
Testing Auth middleware
Урок 60.
00:09:29
Updating routes & end-to-end tests
Урок 61.
00:01:57
Problems with our Login handler test
Урок 62.
00:02:13
What we'll cover in this section
Урок 63.
00:03:28
Defining an interface type for our repository
Урок 64.
00:05:02
Moving our database functions into a repository
Урок 65.
00:02:21
Updating application config to use the database repository
Урок 66.
00:05:50
Creating a testdb repository
Урок 67.
00:01:59
Updating setup_test.go to use the test repository
Урок 68.
00:04:33
Updating our tests to use the testdb repository
Урок 69.
00:01:23
What we'll cover in this section
Урок 70.
00:08:06
Getting started with testing our database
Урок 71.
00:11:04
Getting our tests to spin up a docker image with Postgres
Урок 72.
00:08:55
Populating our test database with empty tables
Урок 73.
00:06:22
Testing InsertUser
Урок 74.
00:04:10
Testing AllUsers
Урок 75.
00:05:12
Testing GetUser and GetUserByEmail
Урок 76.
00:04:22
Testing UpdateUser
Урок 77.
00:02:34
Testing DeleteUser
Урок 78.
00:04:14
Testing ResetUserPassword
Урок 79.
00:06:36
Testing InsertUserImage
Урок 80.
00:02:56
Using build tags to separate our integration tests
Урок 81.
00:00:57
What we'll cover in this section
Урок 82.
00:05:44
Adding a form to the Profile page
Урок 83.
00:05:42
Adding the UserImage type to the User type
Урок 84.
00:06:53
Updating the profile.page.gohtml file to look for a profile image
Урок 85.
00:14:29
Writing a stub handler and a function to process profile image uploads
Урок 86.
00:04:51
Implementing the UploadProfilePic handler
Урок 87.
00:04:29
Trying things out
Урок 88.
00:15:22
Testing image uploads
Урок 89.
00:09:52
Testing our upload handler, with an alternative approach
Урок 90.
00:01:30
What we'll cover in this section
Урок 91.
00:09:55
Setting up an api with our existing code base
Урок 92.
00:05:49
Adding stub handlers (endpoints) for our API
Урок 93.
00:05:23
Trying out our REST API to make sure things work
Урок 94.
00:19:04
Getting started with JWT Authentication
Урок 95.
00:10:39
Generating token pairs
Урок 96.
00:04:50
Implementing the authenticate handler
Урок 97.
00:04:53
Trying out the authentication handler
Урок 98.
00:10:51
Testing our authentication handler
Урок 99.
00:02:39
Setting up a simple program to generate tokens for testing
Урок 100.
00:15:38
Testing generating and validating tokens
Урок 101.
00:06:40
Setting up our application middleware
Урок 102.
00:07:04
Testing our CORS middleware
Урок 103.
00:08:18
Testing our authRequired middleware
Урок 104.
00:02:16
Add middleware to routes
Урок 105.
00:03:56
Testing API routes
Урок 106.
00:09:41
Implementing the handler to refresh tokens
Урок 107.
00:13:13
Testing refreshing tokens
Урок 108.
00:07:22
Completing the handlers that interact with the User type
Урок 109.
00:11:56
Testing the handlers that interact with the User type
Урок 110.
00:08:55
Finishing up testing handlers that interact with the data.User type
Урок 111.
00:01:21
What we'll cover in this section
Урок 112.
00:05:18
Serving HTML for our SPA
Урок 113.
00:16:16
Authenticating users with our SPA
Урок 114.
00:08:40
Setting a refresh token cookie when authenticating
Урок 115.
00:06:24
Allowing users to refresh tokens using a cookie
Урок 116.
00:05:54
Automatically refreshing tokens while the user is logged in
Урок 117.
00:04:37
Getting a user from our simple SPA with the "Get User" button
Урок 118.
00:06:01
Logging web users out
Урок 119.
00:08:59
Testing refreshing tokens for Single Page Apps
Урок 120.
00:06:33
Testing logging users out of our SPA
Автор - udemy
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Язык Go - относительно молодой и достаточно мощный язык, который широко используется для Backend разработки, а также создания сетевых и инфраструктурных приложений. Несмотря на свою, на первый взгляд, простоту и лаконичность синтаксиса, язык обладает всем необходимым для разработки современных, высоконагруженных приложений. В курсе разбираются основы языка, после чего мы плавно перейдем к решению практических задач и разработки Backend приложений
Микросервисы Golang: Переход от монолита к микросервисам
Golang Microservices: Breaking a Monolith to Microservices
Этот курс начнется с предварительно созданного монолита, создание начального приложения в этом курсе не рассматривается. Таким образом, в этом курсе вы сразу же начнете с архитектуры микросервисов. Этот курс предназначен для людей, которые хорошо разбираются в Golang и хотят за короткое время изучить более сложные концепции. Я очень ясный и точный в своем способе преподавания, поэтому в этом курсе не будет ненужных объяснений с моей стороны, я об
Уверены ли вы, что ваш код по работе с ошибками не стыдно показать людям? Практически год ежедневной работы потребовался для создания курса на такую, казалось бы, очевидную тему.
Если вы, как и большинство людей, хотите выучить язык программирования, у вас не так много свободного времени. Время, которое у вас есть, чрезвычайно ценно. Если вы хотите изучить язык программирования Google GO, то вам нужен курс, который быстро научит основным навыкам программирования Go.
Тестирование: Полное руководство для разработчиков
Testing: The Complete Developer's Guide
Самый полный онлайн-курс по тестированию программного обеспечения. Изучите все от модульного тестирования до тестирования API на бэк-энде, от E2E тестирования до всего, что находится между ними, используя JavaScript, Python, React, Node, Rust, Angular, Vue и многое другое, чтобы вы могли стать высококвалифицированным разработчиком в 2023 году!