Wikipedia:Template test cases

This MedLibrary.org supplementary page on Wikipedia:Template test cases is provided directly from the open source Wikipedia as a service to our readers. Please see the note below on authorship of this content, as well as the Wikipedia usage guidelines. To search for other content from our encyclopedia supplement, please use the form below:

Shortcuts:
WP:TEMPTEST
WP:TESTCASE
WP:TESTCASES

Templates are a very powerful feature of MediaWiki, but mistakes can be easily made, even by experienced users. Complex templates should therefore be accompanied by sandboxes and test cases to prevent bugs.

Contents

For what kind of templates

It is recommended to apply the test case pattern to templates using ParserFunctions that can generate very different looking output, such as the ones that take many parameters, or the ones that have many branches of the #switch operator.

For navigational boxes, of which the outputs are almost identical on each transcluding page, the benefit may not outweight the time and effort.

Any template that is transcluded in thousands of pages should of course be tested before an edit is made.

Prerequisite

The template must be properly documented following Wikipedia:Template documentation.

Furthermore, the template should not have too many interleaving <includeonly> and <noinclude> blocks. Ideally there is only one <noinclude> block, placed at the bottom of the template, and containing the {{documentation}} template.

How to create /sandbox and /testcases subpages

1: Suppose your template is named Template:X. Create a subpage with the name Template:X/sandbox and another with Template:X/testcases. When these subpages are present, the green /doc box produced by {{documentation}} automatically provide links to them. Note that "/sandbox" and "/testcases" are spelled in all lower-case.

2: Copy only the code (everything that is not surrounded by <noinclude>) from your Template:X to Template:X/sandbox. And add the following at the end of the last line, in the same line. Like this:

[-- Template code --]<noinclude>

{{template sandbox notice}}
</noinclude>

Note! The template code must start directly before and physically touch the <noinclude> tag. Any blank space or newlines between the template code and the <noinclude> tag can cause the template to render unwanted spaces or newlines when used.

3: Copy a few transcluding examples from articles ({{X | .... }}) to your Template:X/testcases. In the test case subpage, duplicate each example, and for one copy of each example, replace X with X/sandbox. This is done so that you may compare the old and new outputs side by side in the future. Lastly, add the following line at the beginning of the test case page. It does not matter how many blank lines you put around it:

{{template test cases notice}}

4: Thus Template:X/testcases will look like this:

 {{template test cases notice}}

 {{X | foo}}
 {{X/sandbox | foo}}

 {{X | bar}}
 {{X/sandbox | bar}}

How to use them subsequently

  • Sync sandbox from the real template (i.e. step 2 above)
  • Have fun editing the sandbox
  • Verify the test cases
  • If everything looks good, copy the code from the sandbox to the real template

If you chose not to compare the new and old outputs side by side described at the last bullet point of the previous section, it is recommended to use a tabbed browser and open the test case subpage before changing the sandbox, and another after changing the sandbox. This can ensure that the differences are compared accurately.

Example

See also

Wikipedia content modification information:

  • This page was last modified on 16 October 2008, at 22:41.

Wikipedia Authorship and Review

Wikipedia content provided here is not reviewed directly by MedLibrary.org. Wikipedia content is authored by an open community of volunteers and is not produced by or in any way affiliated with MedLibrary.org.

Wikipedia Usage Guidelines

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article on "Wikipedia:Template test cases".

The URL for this specific entry is:

All Wikipedia text is available under the terms of the GNU Free Documentation License. (See Copyrights for details). Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc.