Нажать собственную карточку и проверить сохранность данных

Учебные задачи

Эмулируем нажатие только специально подготовленной карточки, у которой нет внешнего действия.

Где и как запускать

Полный модуль формы своей обработки менеджера тестирования /TESTMANAGER. Fixture запускается отдельно в /TESTCLIENT.

Подготовка

  1. Используйте только собственную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса. В fixture-уроках приведены полные модули отдельных новых внешних обработок с пустой управляемой основной формой.

  2. Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.

  3. Откройте нужную обработку в своём тестируемом клиенте. В отдельной обработке менеджера тестов создайте команду ВыполнитьПример и вставьте полный код соответствующего теста в модуль формы.

  4. Перед каждым тестом заново откройте соответствующую обработку: не используйте уже изменённое состояние. Точные заголовки guide-owned относятся только к подготовленной собственной форме.

  5. Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
    Приложение.УстановитьСоединение();
    ИсходныйЛимит = Неопределено;
    ОшибкаТеста = "";
    Попытка
        Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная карточка guide-owned-card-2026", , 10);
        ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
        Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
        Карточка = Форма.ПолучитьОбъект(Тип("ТестируемаяГруппаФормы"), , "УчебнаяКарточка", 10);
        Сообщить(Карточка.Вид = ВидГруппыФормы.ОбычнаяГруппа);
        Поле = Карточка.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеНазванияКарточки", 10);
        Сообщить(Поле.ПолучитьОтображаемыйТекст() = "Книга");
        Карточка.Нажать();
        ПолеПослеНажатия = Карточка.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеНазванияКарточки", 10);
        Сообщить(ПолеПослеНажатия.ПолучитьОтображаемыйТекст() = "Книга");
    Исключение
        ОшибкаТеста = ОписаниеОшибки();
    КонецПопытки;
    ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
    Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
        ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
    КонецЕсли;
    Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры

&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
    ОшибкиЗавершения = "";
    Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
        Попытка
            Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
        Исключение
            ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
        КонецПопытки;
    КонецЕсли;
    Попытка
        Приложение.РазорватьСоединение();
    Исключение
        ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
    КонецПопытки;
    Возврат ОшибкиЗавершения;
КонецФункции

Разбор по шагам

  1. Менеджер подключается только к своему 127.0.0.1:15380 и получает форму по точному заголовку с таймаутом 10 секунд.

  2. Менеджер ищет точный заголовок карточки, затем точное имя группы внутри своей формы.

  3. Вид ОбычнаяГруппа сам по себе не доказывает режим карточки. Он был включён в редакторе, проверен серверным модулем fixture и должен быть виден перед тестом.

  4. Нажать — штатная эмуляция нажатия группы-карточки. После него заново получаем собственное поле и читаем название.

  5. Даже при ошибке отдельно пытаемся восстановить исходный лимит действий и разорвать соединение; ошибки завершения не скрываются.

Как проверить результат

  1. Три логических проверки дают Истина; после нажатия поле всё ещё Книга.

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

Ожидаемый результат

Метод нажатия показан в подходящем режиме и на контролируемом собственном элементе.

На что обратить внимание

  1. Нельзя применять этот тест к произвольным карточкам рабочей базы: их обработчики могут менять данные.

  2. Написанный сценарий ещё не является подтверждением запуска на вашей 1С.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.