Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:development:faq:ru [2017/02/12 18:36] asmodeus [Тестирование] |
abills:docs:development:faq:ru [2019/07/09 16:19] (текущий) asmodeus [Тестирование] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
=====Общие вопросы===== | =====Общие вопросы===== | ||
+ | ==== Мануал по работе с фреймворком ABillS ==== | ||
+ | [[abills:docs:development:manual:ru|Мануал разработчика]] | ||
====Форматирование кода==== | ====Форматирование кода==== | ||
* В форматирование кода не использовать табов только двойные пробелы | * В форматирование кода не использовать табов только двойные пробелы | ||
* Форматирование if else | * Форматирование if else | ||
- | <code> | + | <code perl> |
if (expr) { | if (expr) { | ||
... | ... | ||
Строка 14: | Строка 15: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ===Однострочные или Выражения=== | ||
+ | |||
+ | $result = ($total_users == 1) ? "Ok" : "Fail"; | ||
* для удобства форматирования кода можно воспользоваться утилитой perltidy | * для удобства форматирования кода можно воспользоваться утилитой perltidy | ||
https://support.abills.net.ua/perltidy.cgi | https://support.abills.net.ua/perltidy.cgi | ||
+ | |||
+ | |||
+ | ====Переменные==== | ||
+ | |||
+ | * Пременные указываюстя строчными буками | ||
+ | |||
+ | $test, @devices, %switch | ||
+ | |||
+ | * Обєкты указываются с заглавной | ||
+ | |||
+ | $Test = Test->new(); | ||
+ | |||
+ | * Масивы указываюстя в множественном числе | ||
+ | |||
+ | my @devices = (); | ||
+ | my @users = (); | ||
+ | |||
+ | * Хеши в единсвенном | ||
+ | |||
+ | %status_list = (); | ||
+ | $status_list{disable}=1; | ||
+ | |||
Общий шаблон функций | Общий шаблон функций | ||
- | <code> | + | <code perl> |
#********************************************************** | #********************************************************** | ||
=head2 test_function($attr) - Test function | =head2 test_function($attr) - Test function | ||
Строка 54: | Строка 81: | ||
- Минимизируйте использование глобальных переменных в функциях. | - Минимизируйте использование глобальных переменных в функциях. | ||
+ | ====Можно ли использовать HTML в коде ?==== | ||
+ | Ни в коем случае не используйте HTML в коде управляющей модели, вместо этого используйте обекты ABillS::HTML или шаблоны | ||
====Дополнительные модули==== | ====Дополнительные модули==== | ||
Строка 63: | Строка 92: | ||
(Библиотека Misc.pm) | (Библиотека Misc.pm) | ||
+ | С проверкой ошибок код выглядит так | ||
+ | <code perl> | ||
+ | my $loaded_imager_error = load_pmodule( "Imager", { RETURN => 1 } ); | ||
+ | if ( $loaded_imager_error ){ | ||
+ | print $loaded_imager_error; | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
Строка 87: | Строка 124: | ||
Для тестирования системы существует каталог с тестами **abills/t** | Для тестирования системы существует каталог с тестами **abills/t** | ||
- | perl web.t | + | make |
+ | |||
+ | Жесткий тест работоспособности, никогда его не выполняйте на рабочей системе, чревато пропажей данных | ||
+ | perl web.t brutal | ||
тестирование синтаксиса и стрес тест веб приложений\\ | тестирование синтаксиса и стрес тест веб приложений\\ | ||
Строка 99: | Строка 139: | ||
perl Aaa.t dhcp_test dhcp.discovery | perl Aaa.t dhcp_test dhcp.discovery | ||
- | Запуск тестов для модуля или папки | + | Тестирование абон платы тарифного плана |
- | [[abills:docs:development:tester|Tester]] | + | |
+ | perl Tariffs.t FILENAME=tp_test1.tp | ||
+ | |||
+ | ^FILENAME | файл с описанием тарифного плана и параметров абонента | | ||
+ | |||
+ | Для задания логина и пароля авторизации используется файл **t/.test** | ||
+ | |||
+ | login:password | ||
+ | |||
+ | В системе также есть специальный скрипт запуска выделенных тестов, которые хранятся в отдельных каталогах | ||
+ | [[abills:docs:development:tester|Запуск тестов для модуля или папки]] | ||
Строка 138: | Строка 189: | ||
</code> | </code> | ||
+ | |||
+ | ====Языковые маркеры==== | ||
+ | |||
+ | %lang = (); | ||
+ | |||
+ | обязательно писать большими буквами | ||
+ | |||
+ | отображение в шаблонах | ||
+ | |||
+ | _{LANG_MARKER}_ | ||
+ | | ||
+ | ====JSON тестирование==== | ||
+ | Для того чтобы протестировать функцию: | ||
+ | Создайте тест в ''usr>abills>t'' \\ | ||
+ | Подключите JSON.t | ||
+ | <code perl> | ||
+ | require "./JSON.t"; | ||
+ | </code> | ||
+ | Создайте JSON заполнив его. API_KEY текущего администратора \\ | ||
+ | <code perl> | ||
+ | my @test_list = ( | ||
+ | { | ||
+ | name => 'InfoFields', | ||
+ | params => { | ||
+ | qindex => 96, | ||
+ | API_KEY => '1523615231263123', | ||
+ | json => 1 | ||
+ | }, | ||
+ | result => '', | ||
+ | valid_json => 1, | ||
+ | schema => { | ||
+ | |||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | </code> | ||
+ | Передайте данные в функцию json_test \\ | ||
+ | <code perl> | ||
+ | json_test( | ||
+ | \@test_list, | ||
+ | { TEST_NAME => 'info_fields_new test' }); | ||
+ | </code> | ||
+ | Выполните ваш тест запустив програму \\ | ||
+ | |||
+ | #prove -v <название теста>.t | ||
+ | |||
+ | |||
+ |