Шаблоны — очень мощная функция программного обеспечения MediaWiki , используемого для Wikipedia , но ошибки могут быть легко допущены даже опытными пользователями. Поэтому редактирование сложных шаблонов должно осуществляться в песочницах и сопровождаться тестовыми примерами для предотвращения ошибок. Временные песочницы X1 - X20 или Template Sandbox могут быть полезными местами для новых экспериментов или для пользователей, впервые занимающихся разработкой шаблонов.
Для разработки совершенно новых шаблонов подходят пользовательские песочницы.
Большинство защищенных шаблонов уже имеют подстраницу sandbox и подстраницу testcases. Имена этих страниц являются стандартными. Внизу каждой страницы шаблона находятся ссылки для создания/редактирования страниц sandbox и testcases шаблона.
Например, вот подстраницы для {{ FlagIOCmedalist }} :
Настоятельно рекомендуется применять шаблон тестового случая к шаблонам, использующим ParserFunctions, которые могут генерировать совершенно разные выходные данные, например, принимающие много параметров или имеющие много ветвей оператора #switch
.
Для навигационных блоков с практически идентичными результатами на каждой странице трансляции выгода может не перевесить время и усилия по созданию страницы-песочницы, но если есть сомнения, поместите ее в песочницу. Любой шаблон, помеченный как Шаблон с высоким риском, всегда следует тестировать перед внесением изменений. С другими страницами вам все равно следует проверить, какие страницы используют шаблон (через ссылку «Что здесь ссылается» в разделе «Инструменты» на панели ссылок в левой части экрана).
Template:X
. Создайте подстраницу с именем Template:X/sandbox
. Если основной шаблон использует шаблон {{ documentation }} , вы можете сделать это по ссылке внизу синего поля документации на главной странице шаблона. Или вы можете ввести его в поле поиска или непосредственно в адресную строку вашего браузера. Обратите внимание, что "/sandbox" полностью в нижнем регистре.<noinclude>
теги и шаблон {{ documentation }} , если он присутствует, вставьте его в окно редактирования подстраницы /sandbox и сохраните страницу. Ваше резюме редактирования должно быть примерно таким create sandbox version of [[Template:X]]
: .Template:X/testcases
. Эта страница связана с нижней частью синего поля документации, только если она действительно существует, поэтому для ее создания вам нужно будет создать ее, введя имя страницы в поле поиска или в адресную строку браузера. Еще раз обратите внимание, что "/testcases" — все строчные буквы и все одно слово.Template:X/sandbox
. Чтобы протестировать свой код, сохраните страницу и перейдите на страницу /testcases. Часто вам нужно будет очистить страницу /testcases, чтобы увидеть обновленные результаты; в шаблоне {{ testcases notic }} есть ссылка, позволяющая это сделать . После очистки страницы сравните результаты для основного шаблона с результатами из песочницы, и если все выглядит нормально, вы можете обновить основной шаблон. Однако будьте осторожны с пропущенными тестовыми случаями и кодом, который можно протестировать только в определенных пространствах имен или на определенных страницах.Чтобы внести изменения в шаблон, в котором уже есть подстраницы /sandbox и /testcases, процесс аналогичен описанному выше.
На странице /testcases должен быть один тестовый случай для каждого отдельного поведения вашего шаблона. Например, если ваш шаблон выводит сообщение-баннер, и если параметр |italic=yes
делает это сообщение курсивом, вы должны добавить один тестовый случай для обычного сообщения и один для курсивного сообщения. Если у этого шаблона есть другой параметр, |date=
, где пользователь вставляет дату, то для этого должен быть третий тестовый случай. Вы должны попытаться быть тщательным и создать случаи для всех способов, которыми пользователи могут использовать ваш шаблон; однако часто непрактично добавлять тестовые случаи для каждой отдельной комбинации параметров, поэтому вы должны выбирать наиболее релевантные из них с умом.
Существует довольно много различных стилей тестовых случаев, которые вы можете использовать. Какой из них вы выберете, зависит от характера шаблона, над которым вы работаете. Например, для короткого вывода шаблона, который умещается на одной строке, может быть полезно поместить тестовые случаи в wikitable, а для длинных и тонких шаблонов, таких как инфобоксы, часто лучше всего отображать их рядом, используя {{ testcase table }} .
Форматирование вручную дает вам большую гибкость, но необходимо следить за тем, чтобы все параметры шаблона были введены правильно. Ошибку в одном из тестовых случаев часто сложнее найти, чем ошибку в самом шаблоне.
Этот формат хорошо подходит для шаблонов баннеров и для длинного текста, например, цитат. Обратите внимание, что вы можете форматировать эти виды тестов автоматически, используя Template:Test case и другие подобные шаблоны.
== Описательное название == * <code><nowiki>{{ шаблон | параметр1 = значение1 | параметр2 = значение2 }}</nowiki></code> '''Основной''' {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }} '''Песочница''' {{ шаблон /sandbox| параметр1 = значение1 | параметр2 = значение2 }}
Каждое значение template , param1 , value1 и т. д. должно быть идентичным.
Для шаблонов, использующих атрибут CSS «float», вам необходимо использовать шаблон {{ clear }}, чтобы предотвратить слипание результатов:
== Описательное название == * <code><nowiki>{{ шаблон | параметр1 = значение1 | параметр2 = значение2 }}</nowiki></code> '''Основной''' {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }} {{прозрачный}} '''Песочница''' {{ шаблон /sandbox| параметр1 = значение1 | параметр2 = значение2 }} {{прозрачный}}
Использование wikitable для форматирования тестовых случаев часто полезно для шаблонов с короткими выводами, которые необходимо правильно выстроить.
Начните таблицу следующим образом:
{| класс="wikitable"|-! Код! Основной! Песочница<!-- Каждый новый тестовый случай можно добавить следующим образом: -->|-| <code><nowiki> {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }} </nowiki></code> | {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }}| {{ шаблон /sandbox| параметр1 = значение1 | параметр2 = значение2 }}<!-- Закончите таблицу следующим образом: -->|}
Существуют различные шаблоны, которые помогают вам автоматически форматировать тестовые случаи. С помощью этих шаблонов параметры и значения вводятся только один раз, но все равно проверяются как для основного шаблона, так и для шаблонов песочницы. Это позволяет избежать проблемы ошибок в параметрах тестовых случаев и упрощает поддержку страниц тестовых случаев. Эти шаблоны включают:
Обратите внимание, что все эти шаблоны могут создавать сворачиваемые тестовые случаи, но у Template:Collapsible test case эта функция включена по умолчанию. Подробную документацию см. на отдельных страницах шаблонов.
Некоторые функции шаблона не могут быть протестированы на страницах /testcases. Например, шаблон может выводить только определенный текст, находясь в основном пространстве имен, или он может выводить разные вещи, когда он используется на базовой странице и когда он используется на подстранице. Для таких тестов вы можете использовать функцию «Предварительный просмотр страницы с этим шаблоном», которую вы можете видеть под окном редактирования на страницах шаблона. Чтобы сделать эту функцию еще более мощной, вы можете установить User:Jackmcbarn/advancedtemplatesandbox.js , что делает ее пригодной для использования в любом пространстве имен и позволяет вам указывать заголовок шаблона, а также страницу для его предварительного просмотра. Это означает, что вы можете редактировать шаблон песочницы, но просматривать страницы так, как если бы вы на самом деле редактировали основной шаблон.
Если вы думаете, что какие-либо тесты не могут быть выполнены на странице /testcases, может быть полезно оставить заметку в верхней части страницы /testcases с указанием того, что еще требует тестирования, чтобы будущие редакторы этого шаблона также знали об этом.