GithubHelp home page GithubHelp logo

densonrus / 1cautotestgenerator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from khorevaa/1cautotestgenerator

0.0 1.0 0.0 13 KB

Создание тестов для модулей 1С

License: MIT License

1C Enterprise 100.00%

1cautotestgenerator's Introduction

Автоматическая генерация тестов

Скрипт предназначен для создания заготовки для тестирования на основе xUnitFor1C. Парсится текст модуля, находятся все экспортируемые методы и их параметры. На каждый экспортируемый метод создается заготовка для теста по правилу:

Если Метод = Процедура Тогда Тест__Должен__<ИмяПроцедуры>

Если Метод = Функция Тогда Тест__Должен__Вернуть__<ИмяФункции>

Исходный код:

// Имеет ли пользователь Административные полномочия
// 
// Возвращаемое значение:
//   Булево   - Является Да/Нет
//
Функция ЭтоАдминистратор() Экспорт
	Возврат Истина;
КонецФункции // ЭтоАдминистратор()

// Вернуть какой-то список
//
//# Параметры:
//#  ТипДанных  - Тип - Тип данных для обработки
//                 <продолжение описания параметра>
//#  ПостОбработка - Булево - Описание
//
//# Возвращаемое значение:
//#   Массив   - Записи
//#   Неопределено  - Записи
//#   Соответствие - Данные в ином виде
//
//#TestMethod: 
&НаСервере
Функция ПолучитьСписокОбъектов(ТипДанных, ПостОбработка = Истина) Экспорт // текст
	
КонецФункции // ПолучитьСписок()

Результа работы:

СписокТестов.Добавить("Тест_Должен_Вернуть_ЭтоАдминистратор");
СписокТестов.Добавить("Тест_Должен_Вернуть_ПолучитьСписокОбъектов");

Процедура Тест_Должен_Вернуть_ЭтоАдминистратор() Экспорт
	Сообщить("Тест пустышка!");
	// Результат = ОбъектТестирования.ЭтоАдминистратор();
КонецПроцедуры

Процедура Тест_Должен_Вернуть_ПолучитьСписокОбъектов() Экспорт
	Сообщить("Тест пустышка!");
	// ТипДанных = Неопределено;
	// ПостОбработка = Неопределено;
	// Результат = ОбъектТестирования.ПолучитьСписокОбъектов(ТипДанных, ПостОбработка);
КонецПроцедуры

Для получения методов с тестами и без анализируется специальная метка в коде:

//#TestMethod: <ИмяМетодаВТесте>

Для исключения метода из списка тестируемых необходимо установить значение равное 'none'

//#TestMethod: none

Параметры и возвращаемые значения получаются парсингом описания метода, парсер анализирует строки начинающиеся с '//#'.

Учитывается:

//# ВидСправочника - Строка - ВидСправочника

Не учитывается:

// ВидСправочника - Строка - ВидСправочника

ВАЖНО: Параметры методов должны размещаться в одной строке

##Классы

###РаботаСТекстовымиФайлами

###ГенераторТестов

  • ПолучитьСписокМетодов - Структура - Список методов.

    Парсит текст файла с модулем, получает список всех методов и параметров. ВАЖНО: Параметры берутся только из описания метода

    Ключи:

    • Тип - Строка - Процедура/Функция

    • Имя - Строка - Имя метода

    • Экспорт - Булево - Признак экспортного метода

    • Параметры - Структура - Параметры метода

    • Возврат - Структура - Возвращаемые значения функции, если процедура - пустая структура

    • Тест - Строка - Имя тесового метода

  • ПолучитьСписокМетодовБезТестов - Структура - Методы без тестов. Тестированию подлежат экспортные методы.

  • ПолучитьСписокМетодовCТестами - Структура - Методы с указанным методом теста. Тестированию подлежат экспортные методы

  • СоздатьТесты - Строка - Генерация костяка теста для методов без тестов.

###ГенераторМодулейНаОсновеТестов

1cautotestgenerator's People

Contributors

ret-phoenix avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.