К основному контенту

xUnitFor1C и Обычное приложение.

Вводная: спросили, как?

Пример упавшего теста xUnitFor1C в Обычном приложении


Взял https://github.com/xDrivenDevelopment/xUnitFor1C

Обычного под руками ничего не было. Взял версию БСП 2.0.1.19 (для 8.2), включил запуск в обычном приложении, при первой попытке запуска xddTestRunner.epf получил ошибки связанные с методами платформы, которых из-за режима совместимости ещё не было.

Добавил глобальный модуль с заплатками (можно было поправить и релиз xUnitFor1C, но было быстрее в самой конфигурации сделать заплатку)

Функция СтрШаблон(Знач СтрокаПодстановки,
 Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
 Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
 Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт
 
 Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
 СтрокаПодстановки, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
 
КонецФункции

Функция СтрНайти(Строка, ПодстрокаПоиска, 
 НаправлениеПоиска = Неопределено, НачальнаяПозиция = 0, НомерВхождения = Неопределено) Экспорт
 
 Если ЗначениеЗаполнено(НаправлениеПоиска) Тогда
  ВызватьИсключение "НаправлениеПоиска";
 КонецЕсли;
 
 Если ЗначениеЗаполнено(НачальнаяПозиция) Тогда
  ВызватьИсключение "НачальнаяПозиция";
 КонецЕсли;
 
 Если ЗначениеЗаполнено(НомерВхождения) Тогда
  ВызватьИсключение "НомерВхождения";
 КонецЕсли;
 
 Возврат Найти(Строка, ПодстрокаПоиска);
 
КонецФункции

Дальше проверил только интерактивную работу -  запускаем  xddTestRunner.epf  из корня репозитория проекта. Загружаем тесты из каталога \ выборочно из файлов, сами тесты внешние обработки, примеры можно посмотреть там же в подкаталоге \Tests.

или делаем свою с модулем объекта, например так

Перем КонтекстЯдра;
Перем Утверждения;

Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
 КонтекстЯдра = КонтекстЯдраПараметр;
 Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");
КонецПроцедуры

Функция ПолучитьСписокТестов() Экспорт
 ВсеТесты = Новый Массив;
 
 ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоТо");
 ВсеТесты.Добавить("ТестДолжен_ПроверитьЕщёЧтоТо");
 ВсеТесты.Добавить("ТестДолжен_Провалиться");
 
 Возврат ВсеТесты;
КонецФункции

Процедура ТестДолжен_ПроверитьЧтоТо() Экспорт
 
 Утверждения.Проверить(Истина, "Это не была истина");
 
КонецПроцедуры

Процедура ТестДолжен_ПроверитьЕщёЧтоТо() Экспорт
 
 Утверждения.Проверить(Истина, "Это не была истина");
 
КонецПроцедуры

Процедура ТестДолжен_Провалиться() Экспорт
 
 Утверждения.Проверить(Ложь, "Это не была истина");
 
КонецПроцедуры


Для обычного приложения достаточно уже этого.

Про плагины

Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения");

все они лежат в каталоге \Plugins репозитория

А в качестве документации можно воспользоваться каталогом исходников репозитория, например


или открывать обработки из каталога \Plugins.


Комментарии

Популярные сообщения из этого блога

СписокВыбора. Показать Представление вместо Значения

Вводная Если на форме есть элемент управления со списком выбора, в моем конкретном примере это Колонка Значение (Число (3,0)) с настроенным списком выбора. По умолчанию платформа отображает именно строковое значения, а не текст представления  из списка выбора (когда как при выборе значения из списка показываются именно представления). Решение Для Управляемых форм необходимо настроить правила условного оформления, для обычных форм - оформление ячеек при выводе данных.

Табличный Документ. Разная ширина колонки в строках

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок - будет задан вопрос об создании нового формата строк - соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();

Расширение конфигурации + Связанные документы (Режим совместимости 8.3.12)

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За