Вчера мы с Вами начали знакомиться со слоем для тестирования коннекторов в OsEngine. А сегодня будем смотреть, как они реализованы технически.
К слову сказать, созданы тесты на базе обычного робота для OsEngine. А это статья — обзор этого робота.

1. Робот для тестов внутри проекта:

2. Регионы внутри WServerTester.
В роботе для тестов есть всего три региона:

- Конструктор и параметры для тестов.
- Обработчики кнопок для старта тестов.
- Создание и обработка работы самих тестов.
3. РегионSettings and Params подробнее.

- Конструктор робота.
- Имя робота для системы.
- Пустой метод для вызова окна индивидуальных настроек.
- Настройки для различных тестов.
4. РегионStart Test By Buttons подробнее.

- Обработчики кнопок старта тестов.
- Тип теста, который выбрал пользователь, кликнув по кнопке.
5. РегионTest work thread подробнее.

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

7. Абстракция для теста (AServerTester).
Каждый тест в OsEngine является наследником класса AServerTester. В нём находятся функции, которые нужны в каждом тесте.

- Коннектор, который мы будем тестировать.
- Начать тест. Метод, вызывающий метод Process в новом потоке.
- Метод работы теста. Единственный обязательный к перегрузке член, вызывается в новом потоке. Именно в нём надо как-то тестировать коннектор.
- Взять отчёт о тестировании.
- Сохранить сервисную информацию по тесту.
- Хранилище записей с сервисной информацией.
- Сохранить ошибку по тесту.
- Хранилище записей с ошибками.
- Метод для отсылки экстренных сообщений на верх в случае ошибок.
- Метод, который НУЖНО вызвать при завершении любого вида теста.
- Событие с завершением теста.
8. Сами тесты.
Реализацию тестов можно посмотреть в любом из них:

Далее, будем разговаривать про каждый из этих тестов в отдельности. Что они проверяют, как их запустить.
Удачных алгоритмов!
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php
