<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="pl">
<head>
<!-- Generated by javadoc (1.8.0) on Mon Jul 28 12:08:59 CEST 2014 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JUnitParamsRunner (JUnitParams 1.0.3-SNAPSHOT API)</title>
<meta name="date" content="2014-07-28">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JUnitParamsRunner (JUnitParams 1.0.3-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JUnitParamsRunner.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../junitparams/FileParameters.html" title="annotation in junitparams"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../junitparams/Parameters.html" title="annotation in junitparams"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?junitparams/JUnitParamsRunner.html" target="_top">Frames</a></li>
<li><a href="JUnitParamsRunner.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor.summary">Constr</a> | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor.detail">Constr</a> | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">junitparams</div>
<h2 title="Class JUnitParamsRunner" class="title">Class JUnitParamsRunner</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.junit.runner.Runner</li>
<li>
<ul class="inheritance">
<li>org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod></li>
<li>
<ul class="inheritance">
<li>org.junit.runners.BlockJUnit4ClassRunner</li>
<li>
<ul class="inheritance">
<li>junitparams.JUnitParamsRunner</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Sortable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">JUnitParamsRunner</span>
extends org.junit.runners.BlockJUnit4ClassRunner</pre>
<div class="block"><h1>JUnitParams</h1><br>
<p>
This is a JUnit runner for parameterised tests that don't suck. Annotate your test class with
<code>@RunWith(JUnitParamsRunner.class)</code> and place
<code>@Parameters</code> annotation on each test method which requires
parameters. Nothing more needed - no special structure, no dirty tricks.
</p>
<br>
<h2>Contents</h2> <b> <a href="#p1">1. Parameterising tests</a><br>
<a href="#a">a. Parameterising tests via values
in annotation</a><br>
<a href="#b">b. Parameterising tests via a
method that returns parameter values</a><br>
<a href="#c">c. Parameterising tests via
external classes</a><br>
<a href="#d">d. Loading parameters from files</a><br>
<a href="#d">e. Converting parameter values</a><br>
<a href="#p2">2. Usage with Spring</a><br>
<a href="#p3">3. Other options</a><br>
</b><br>
<h3 id="p1">1. Parameterising tests</h3> Parameterised tests are a great way
to limit the amount of test code when you need to test the same code under
different conditions. Ever tried to do it with standard JUnit tools like
Parameterized runner or Theories? I always thought they're so awkward to use,
that I've written this library to help all those out there who'd like to have
a handy tool.
So here we go. There are a few different ways to use JUnitParams, I will try
to show you all of them here.
<h4 id="a">a. Parameterising tests via values in annotation</h4>
<p>
You can parameterise your test with values defined in annotations. Just pass
sets of test method argument values as an array of Strings, where each string
contains the argument values separated by a comma or a pipe "|".
<pre>
@Test
@Parameters({ "20, Tarzan", "0, Jane" })
public void cartoonCharacters(int yearsInJungle, String person) {
...
}
</pre>
Sometimes you may be interested in passing enum values as parameters, then
you can just write them as Strings like this:
<pre>
@Test
@Parameters({ "FROM_JUNGLE", "FROM_CITY" })
public void passEnumAsParam(PersonType person) {
}
</pre>
<h4 id="b">b. Parameterising tests via a method that returns parameter values
</h4>
<p>
Obivously passing parameters as strings is handy only for trivial situations,
that's why for normal cases you have a method that gives you a collection of
parameters:
<pre>
@Test
@Parameters(method = "cartoonCharacters")
public void cartoonCharacters(int yearsInJungle, String person) {
...
}
private Object[] cartoonCharacters() {
return $(
$(0, "Tarzan"),
$(20, "Jane")
);
}
</pre>
Where <code>$(...)</code> is a static method defined in
<code>JUnitParamsRunner</code> class, which returns its parameters as a
<code>Object[]</code> array. Just a shortcut, so that you don't need to write the ugly <code>new Object[] {}</code> kind of stuff.
<p>
<code>method</code> can take more than one method name - you can pass as many
of them as you want, separated by commas. This enables you to divide your
test cases e.g. into categories.
<pre>
@Test
@Parameters(method = "menCharactes, womenCharacters")
public void cartoonCharacters(int yearsInJungle, String person) {
...
}
private Object[] menCharacters() {
return $(
$(20, "Tarzan"),
$(2, "Chip"),
$(2, "Dale")
);
}
private Object[] womenCharacters() {
return $(
$(0, "Jane"),
$(18, "Pocahontas")
);
}
</pre>
<p>
The <code>method</code> argument of a <code>@Parameters</code> annotation can
be ommited if the method that provides parameters has a the same name as the
test, but prefixed by <code>parametersFor</code>. So our example would look
like this:
<pre>
@Test
@Parameters
public void cartoonCharacters(int yearsInJungle, String person) {
...
}
private Object[] parametersForCartoonCharacters() {
return $(
$(0, "Tarzan"),
$(20, "Jane")
);
}
</pre>
<p>
If you don't like returning untyped values and arrays, you can equally well
return any Iterable of concrete objects:
<pre>
@Test
@Parameters
public void cartoonCharacters(Person character) {
...
}
private List<Person> parametersForCartoonCharacters() {
return Arrays.asList(
new Person(0, "Tarzan"),
new Person(20, "Jane")
);
}
</pre>
If we had more than just two Person's to make, we would get redundant,
so JUnitParams gives you a simplified way of creating objects to be passed as
params. You can omit the creation of the objects and just return their constructor
argument values like this:
<pre>
@Test
@Parameters
public void cartoonCharacters(Person character) {
...
}
private List<?> parametersForCartoonCharacters() {
return Arrays.asList(
$(0, "Tarzan"),
$(20, "Jane")
);
}
</pre>
And JUnitParams will invoke the appropriate constructor (<code>new Person(int age, String name)</code> in this case.)
<b>If you want to use it, watch out! Automatic refactoring of constructor
arguments won't be working here!</b>
<p>
You can also define methods that provide parameters in subclasses and use
them in test methods defined in superclasses, as well as redefine data
providing methods in subclasses to be used by test method defined in a
superclass. That you can doesn't mean you should. Inheritance in tests is
usually a code smell (readability hurts), so make sure you know what you're
doing.
<h4 id="c">c. Parameterising tests via external classes</h4>
<p>
For more complex cases you may want to externalise the method that provides
parameters or use more than one method to provide parameters to a single test
method. You can easily do that like this:
<pre>
@Test
@Parameters(source = CartoonCharactersProvider.class)
public void testReadyToLiveInJungle(int yearsInJungle, String person) {
...
}
...
class CartoonCharactersProvider {
public static Object[] provideCartoonCharactersManually() {
return $(
$(0, "Tarzan"),
$(20, "Jane")
);
}
public static Object[] provideCartoonCharactersFromDB() {
return cartoonsRepository.loadCharacters();
}
}
</pre>
All methods starting with <code>provide</code> are used as parameter
providers.
<p>
Sometimes though you may want to use just one or few methods of some class to
provide you parameters. This can be done as well like this:
<pre>
@Test
@Parameters(source = CartoonCharactersProvider.class, method = "cinderellaCharacters,snowwhiteCharacters")
public void testPrincesses(boolean isAPrincess, String characterName) {
...
}
</pre>
<h4 id="d">d. Loading parameters from files</h4> You may be interested in
loading parameters from a file. This is very easy if it's a CSV file with
columns in the same order as test method parameters:
<pre>
@Test
@FileParameters("cartoon-characters.csv")
public void shouldSurviveInJungle(int yearsInJungle, String person) {
...
}
</pre>
But if you want to process the data from the CSV file a bit to use it in the
test method arguments, you
need to use an <code>IdentityMapper</code>. Look:
<pre>
@Test
@FileParameters(value = "cartoon-characters.csv", mapper = CartoonMapper.class)
public void shouldSurviveInJungle(Person person) {
...
}
public class CartoonMapper extends IdentityMapper {
@Override
public Object[] map(Reader reader) {
Object[] map = super.map(reader);
List<Object[]> result = new LinkedList<Object[]>();
for (Object lineObj : map) {
String line = (String) lineObj; // line in a format just like in the file
result.add(new Object[] { ..... }); // some format edible by the test method
}
return result.toArray();
}
}
</pre>
A CSV files with a header are also supported with the use of <code>CsvWithHeaderMapper</code> class.
You may also want to use a completely different file format, like excel or
something. Then just parse it yourself:
<pre>
@Test
@FileParameters(value = "cartoon-characters.xsl", mapper = ExcelCartoonMapper.class)
public void shouldSurviveInJungle(Person person) {
...
}
public class CartoonMapper implements DataMapper {
@Override
public Object[] map(Reader fileReader) {
...
}
}
</pre>
As you see, you don't need to open or close the file. Just read it from the
reader and parse it the way you wish.
By default the file is loaded from the file system, relatively to where you start the tests from. But you can also use a resource from
the classpath by prefixing the file name with <code>classpath:</code>
<h4 id="e">e. Converting parameter values</h4>
Sometimes you want to pass some parameter in one form, but use it in the test in another. Dates are a good example. It's handy to
specify them in the parameters as a String like "2013.01.01", but you'd like to use a Jodatime's LocalDate or JDKs Date in the test
without manually converting the value in the test. This is where the converters become handy. It's enough to annotate a parameter with
a <code>@ConvertParam</code> annotation, give it a converter class and possibly some options (like date format in this case) and
you're done. Here's an example:
<pre>
@Test
@Parameters({ "01.12.2012, A" })
public void convertMultipleParams(
@ConvertParam(value = StringToDateConverter.class, options = "dd.MM.yyyy") Date date,
@ConvertParam(LetterToASCIIConverter.class) int num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
assertEquals(2012, calendar.get(Calendar.YEAR));
assertEquals(11, calendar.get(Calendar.MONTH));
assertEquals(1, calendar.get(Calendar.DAY_OF_MONTH));
assertEquals(65, num);
}
</pre>
<h3 id="p2">2. Usage with Spring</h3>
<p>
You can easily use JUnitParams together with Spring. The only problem is that
Spring's test framework is based on JUnit runners, and JUnit allows only one
runner to be run at once. Which would normally mean that you could use only
one of Spring or JUnitParams. Luckily we can cheat Spring a little by adding
this to your test class:
<pre>
private TestContextManager testContextManager;
@Before
public void init() throws Exception {
this.testContextManager = new TestContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
}
</pre>
This lets you use in your tests anything that Spring provides in its test
framework.
<h3 id="p3">3. Other options</h3> <h4>Customizing how parameter objects are
shown in IDE</h4>
<p>
Tests show up in your IDE as a tree with test class name being the root, test
methods being nodes, and parameter sets being the leaves. If you want to
customize the way an parameter object is shown, create a <b>toString</b>
method for it.
<h4>Empty parameter sets</h4>
<p>
If you create a parameterised test, but won't give it any parameter sets, it
will be ignored and you'll be warned about it.
<h4>Parameterised test with no parameters</h4>
<p>
If for some reason you want to have a normal non-parameterised method to be
annotated with @Parameters, then fine, you can do it. But it will be ignored
then, since there won't be any params for it, and parameterised tests need
parameters to execute properly (parameters are a part of test setup, right?)
<h4>JUnit Rules</h4>
<p>
The runner for parameterised test is trying to keep all the @Rule's running,
but if something doesn't work - let me know. It's pretty tricky, since the
rules in JUnit are chained, but the chain is kind of... unstructured, so
sometimes I need to guess how to call the next element in chain. If you have
your own rule, make sure it has a field of type Statement which is the next
statement in chain to call.
<h4>Test inheritance</h4>
<p>
Although usually a bad idea, since it makes tests less readable, sometimes
inheritance is the best way to remove repetitions from tests. JUnitParams is
fine with inheritance - you can define a common test in the superclass, and
have separate parameters provider methods in the subclasses. Also the other
way around is ok, you can define parameter providers in superclass and have
tests in subclasses uses them as their input.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Pawel Lipinski (lipinski.pawel@gmail.com)</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#JUnitParamsRunner-java.lang.Class-">JUnitParamsRunner</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> klass)</code> </td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#Z:Z:D-java.lang.Object...-">$</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... params)</code>
<div class="block">Shortcut for returning an array of objects.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#collectInitializationErrors-java.util.List-">collectInitializationErrors</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>> errors)</code> </td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.junit.runners.model.FrameworkMethod></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#computeTestMethods--">computeTestMethods</a></span>()</code> </td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected org.junit.runner.Description</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#describeMethod-org.junit.runners.model.FrameworkMethod-">describeMethod</a></span>(org.junit.runners.model.FrameworkMethod method)</code> </td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>org.junit.runner.Description</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#getDescription--">getDescription</a></span>()</code> </td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected org.junit.runners.model.Statement</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#methodInvoker-org.junit.runners.model.FrameworkMethod-java.lang.Object-">methodInvoker</a></span>(org.junit.runners.model.FrameworkMethod method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> test)</code> </td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#runChild-org.junit.runners.model.FrameworkMethod-org.junit.runner.notification.RunNotifier-">runChild</a></span>(org.junit.runners.model.FrameworkMethod method,
org.junit.runner.notification.RunNotifier notifier)</code> </td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.junit.runners.BlockJUnit4ClassRunner">
<!-- -->
</a>
<h3>Methods inherited from class org.junit.runners.BlockJUnit4ClassRunner</h3>
<code>createTest, describeChild, getChildren, getTestRules, methodBlock, possiblyExpectingExceptions, rules, testName, validateConstructor, validateFields, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor, withAfters, withBefores, withPotentialTimeout</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.junit.runners.ParentRunner">
<!-- -->
</a>
<h3>Methods inherited from class org.junit.runners.ParentRunner</h3>
<code>childrenInvoker, classBlock, classRules, filter, getName, getRunnerAnnotations, getTestClass, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.junit.runner.Runner">
<!-- -->
</a>
<h3>Methods inherited from class org.junit.runner.Runner</h3>
<code>testCount</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="JUnitParamsRunner-java.lang.Class-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JUnitParamsRunner</h4>
<pre>public JUnitParamsRunner(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> klass)
throws org.junit.runners.model.InitializationError</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.junit.runners.model.InitializationError</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="collectInitializationErrors-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectInitializationErrors</h4>
<pre>protected void collectInitializationErrors(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>> errors)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>collectInitializationErrors</code> in class <code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
</dl>
</li>
</ul>
<a name="runChild-org.junit.runners.model.FrameworkMethod-org.junit.runner.notification.RunNotifier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runChild</h4>
<pre>protected void runChild(org.junit.runners.model.FrameworkMethod method,
org.junit.runner.notification.RunNotifier notifier)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>runChild</code> in class <code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
</dl>
</li>
</ul>
<a name="computeTestMethods--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeTestMethods</h4>
<pre>protected <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.junit.runners.model.FrameworkMethod> computeTestMethods()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>computeTestMethods</code> in class <code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
</dl>
</li>
</ul>
<a name="methodInvoker-org.junit.runners.model.FrameworkMethod-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>methodInvoker</h4>
<pre>protected org.junit.runners.model.Statement methodInvoker(org.junit.runners.model.FrameworkMethod method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> test)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>methodInvoker</code> in class <code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
</dl>
</li>
</ul>
<a name="getDescription--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescription</h4>
<pre>public org.junit.runner.Description getDescription()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>getDescription</code> in interface <code>org.junit.runner.Describable</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getDescription</code> in class <code>org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod></code></dd>
</dl>
</li>
</ul>
<a name="describeMethod-org.junit.runners.model.FrameworkMethod-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>describeMethod</h4>
<pre>protected org.junit.runner.Description describeMethod(org.junit.runners.model.FrameworkMethod method)</pre>
</li>
</ul>
<a name="Z:Z:D-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>$</h4>
<pre>public static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] $(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... params)</pre>
<div class="block">Shortcut for returning an array of objects. All parameters passed to this
method are returned in an <code>Object[]</code> array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - Values to be returned in an <code>Object[]</code> array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Values passed to this method.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JUnitParamsRunner.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../junitparams/FileParameters.html" title="annotation in junitparams"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../junitparams/Parameters.html" title="annotation in junitparams"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?junitparams/JUnitParamsRunner.html" target="_top">Frames</a></li>
<li><a href="JUnitParamsRunner.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a href="#constructor.summary">Constr</a> | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a href="#constructor.detail">Constr</a> | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright © 2014 <a href="http://pragmatists.pl">Pragmatists</a>. All rights reserved.</small></p>
</body>
</html>