1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<!-- NewPage -->
3<html lang="pl">
4<head>
5<!-- Generated by javadoc (1.8.0) on Mon Jul 28 12:08:59 CEST 2014 -->
6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7<title>JUnitParamsRunner (JUnitParams 1.0.3-SNAPSHOT API)</title>
8<meta name="date" content="2014-07-28">
9<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
10<script type="text/javascript" src="../script.js"></script>
11</head>
12<body>
13<script type="text/javascript"><!--
14    try {
15        if (location.href.indexOf('is-external=true') == -1) {
16            parent.document.title="JUnitParamsRunner (JUnitParams 1.0.3-SNAPSHOT API)";
17        }
18    }
19    catch(err) {
20    }
21//-->
22var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
23var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
24var altColor = "altColor";
25var rowColor = "rowColor";
26var tableTab = "tableTab";
27var activeTableTab = "activeTableTab";
28</script>
29<noscript>
30<div>JavaScript is disabled on your browser.</div>
31</noscript>
32<!-- ========= START OF TOP NAVBAR ======= -->
33<div class="topNav"><a name="navbar.top">
34<!--   -->
35</a>
36<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
37<a name="navbar.top.firstrow">
38<!--   -->
39</a>
40<ul class="navList" title="Navigation">
41<li><a href="../overview-summary.html">Overview</a></li>
42<li><a href="package-summary.html">Package</a></li>
43<li class="navBarCell1Rev">Class</li>
44<li><a href="class-use/JUnitParamsRunner.html">Use</a></li>
45<li><a href="package-tree.html">Tree</a></li>
46<li><a href="../deprecated-list.html">Deprecated</a></li>
47<li><a href="../index-all.html">Index</a></li>
48<li><a href="../help-doc.html">Help</a></li>
49</ul>
50</div>
51<div class="subNav">
52<ul class="navList">
53<li><a href="../junitparams/FileParameters.html" title="annotation in junitparams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
54<li><a href="../junitparams/Parameters.html" title="annotation in junitparams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
55</ul>
56<ul class="navList">
57<li><a href="../index.html?junitparams/JUnitParamsRunner.html" target="_top">Frames</a></li>
58<li><a href="JUnitParamsRunner.html" target="_top">No&nbsp;Frames</a></li>
59</ul>
60<ul class="navList" id="allclasses_navbar_top">
61<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
62</ul>
63<div>
64<script type="text/javascript"><!--
65  allClassesLink = document.getElementById("allclasses_navbar_top");
66  if(window==top) {
67    allClassesLink.style.display = "block";
68  }
69  else {
70    allClassesLink.style.display = "none";
71  }
72  //-->
73</script>
74</div>
75<div>
76<ul class="subNavList">
77<li>Summary:&nbsp;</li>
78<li>Nested&nbsp;|&nbsp;</li>
79<li>Field&nbsp;|&nbsp;</li>
80<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
81<li><a href="#method.summary">Method</a></li>
82</ul>
83<ul class="subNavList">
84<li>Detail:&nbsp;</li>
85<li>Field&nbsp;|&nbsp;</li>
86<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
87<li><a href="#method.detail">Method</a></li>
88</ul>
89</div>
90<a name="skip.navbar.top">
91<!--   -->
92</a></div>
93<!-- ========= END OF TOP NAVBAR ========= -->
94<!-- ======== START OF CLASS DATA ======== -->
95<div class="header">
96<div class="subTitle">junitparams</div>
97<h2 title="Class JUnitParamsRunner" class="title">Class JUnitParamsRunner</h2>
98</div>
99<div class="contentContainer">
100<ul class="inheritance">
101<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>
102<li>
103<ul class="inheritance">
104<li>org.junit.runner.Runner</li>
105<li>
106<ul class="inheritance">
107<li>org.junit.runners.ParentRunner&lt;org.junit.runners.model.FrameworkMethod&gt;</li>
108<li>
109<ul class="inheritance">
110<li>org.junit.runners.BlockJUnit4ClassRunner</li>
111<li>
112<ul class="inheritance">
113<li>junitparams.JUnitParamsRunner</li>
114</ul>
115</li>
116</ul>
117</li>
118</ul>
119</li>
120</ul>
121</li>
122</ul>
123<div class="description">
124<ul class="blockList">
125<li class="blockList">
126<dl>
127<dt>All Implemented Interfaces:</dt>
128<dd>org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Sortable</dd>
129</dl>
130<hr>
131<br>
132<pre>public class <span class="typeNameLabel">JUnitParamsRunner</span>
133extends org.junit.runners.BlockJUnit4ClassRunner</pre>
134<div class="block"><h1>JUnitParams</h1><br>
135 <p>
136 This is a JUnit runner for parameterised tests that don't suck. Annotate your test class with
137 <code>&#064;RunWith(JUnitParamsRunner.class)</code> and place
138 <code>&#064;Parameters</code> annotation on each test method which requires
139 parameters. Nothing more needed - no special structure, no dirty tricks.
140 </p>
141 <br>
142 <h2>Contents</h2> <b> <a href="#p1">1. Parameterising tests</a><br>
143 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#a">a. Parameterising tests via values
144 in annotation</a><br>
145 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#b">b. Parameterising tests via a
146 method that returns parameter values</a><br>
147 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#c">c. Parameterising tests via
148 external classes</a><br>
149 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#d">d. Loading parameters from files</a><br>
150 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#d">e. Converting parameter values</a><br>
151 <a href="#p2">2. Usage with Spring</a><br>
152 <a href="#p3">3. Other options</a><br>
153 </b><br>
154 <h3 id="p1">1. Parameterising tests</h3> Parameterised tests are a great way
155 to limit the amount of test code when you need to test the same code under
156 different conditions. Ever tried to do it with standard JUnit tools like
157 Parameterized runner or Theories? I always thought they're so awkward to use,
158 that I've written this library to help all those out there who'd like to have
159 a handy tool.
160
161 So here we go. There are a few different ways to use JUnitParams, I will try
162 to show you all of them here.
163
164 <h4 id="a">a. Parameterising tests via values in annotation</h4>
165 <p>
166 You can parameterise your test with values defined in annotations. Just pass
167 sets of test method argument values as an array of Strings, where each string
168 contains the argument values separated by a comma or a pipe "|".
169
170 <pre>
171   &#064;Test
172   &#064;Parameters({ "20, Tarzan", "0, Jane" })
173   public void cartoonCharacters(int yearsInJungle, String person) {
174       ...
175   }
176 </pre>
177
178 Sometimes you may be interested in passing enum values as parameters, then
179 you can just write them as Strings like this:
180
181 <pre>
182 &#064;Test
183 &#064;Parameters({ &quot;FROM_JUNGLE&quot;, &quot;FROM_CITY&quot; })
184 public void passEnumAsParam(PersonType person) {
185 }
186 </pre>
187
188 <h4 id="b">b. Parameterising tests via a method that returns parameter values
189 </h4>
190 <p>
191 Obivously passing parameters as strings is handy only for trivial situations,
192 that's why for normal cases you have a method that gives you a collection of
193 parameters:
194
195 <pre>
196   &#064;Test
197   &#064;Parameters(method = "cartoonCharacters")
198   public void cartoonCharacters(int yearsInJungle, String person) {
199       ...
200   }
201   private Object[] cartoonCharacters() {
202      return $(
203          $(0, "Tarzan"),
204          $(20, "Jane")
205      );
206   }
207 </pre>
208
209 Where <code>$(...)</code> is a static method defined in
210 <code>JUnitParamsRunner</code> class, which returns its parameters as a
211 <code>Object[]</code> array. Just a shortcut, so that you don't need to write the ugly <code>new Object[] {}</code> kind of stuff.
212
213 <p>
214 <code>method</code> can take more than one method name - you can pass as many
215 of them as you want, separated by commas. This enables you to divide your
216 test cases e.g. into categories.
217 <pre>
218   &#064;Test
219   &#064;Parameters(method = "menCharactes, womenCharacters")
220   public void cartoonCharacters(int yearsInJungle, String person) {
221       ...
222   }
223   private Object[] menCharacters() {
224      return $(
225          $(20, "Tarzan"),
226          $(2, "Chip"),
227          $(2, "Dale")
228      );
229   }
230   private Object[] womenCharacters() {
231      return $(
232          $(0, "Jane"),
233          $(18, "Pocahontas")
234      );
235   }
236 </pre>
237 <p>
238 The <code>method</code> argument of a <code>@Parameters</code> annotation can
239 be ommited if the method that provides parameters has a the same name as the
240 test, but prefixed by <code>parametersFor</code>. So our example would look
241 like this:
242
243 <pre>
244   &#064;Test
245   &#064;Parameters
246   public void cartoonCharacters(int yearsInJungle, String person) {
247       ...
248   }
249   private Object[] parametersForCartoonCharacters() {
250      return $(
251          $(0, "Tarzan"),
252          $(20, "Jane")
253      );
254   }
255 </pre>
256
257 <p>
258 If you don't like returning untyped values and arrays, you can equally well
259 return any Iterable of concrete objects:
260
261 <pre>
262   &#064;Test
263   &#064;Parameters
264   public void cartoonCharacters(Person character) {
265       ...
266   }
267   private List&lt;Person&gt; parametersForCartoonCharacters() {
268      return Arrays.asList(
269          new Person(0, "Tarzan"),
270          new Person(20, "Jane")
271      );
272   }
273 </pre>
274
275 If we had more than just two Person's to make, we would get redundant,
276 so JUnitParams gives you a simplified way of creating objects to be passed as
277 params. You can omit the creation of the objects and just return their constructor
278 argument values like this:
279
280 <pre>
281   &#064;Test
282   &#064;Parameters
283   public void cartoonCharacters(Person character) {
284       ...
285   }
286   private List&lt;?&gt; parametersForCartoonCharacters() {
287      return Arrays.asList(
288          $(0, "Tarzan"),
289          $(20, "Jane")
290      );
291   }
292 </pre>
293 And JUnitParams will invoke the appropriate constructor (<code>new Person(int age, String name)</code> in this case.)
294 <b>If you want to use it, watch out! Automatic refactoring of constructor
295 arguments won't be working here!</b>
296
297 <p>
298 You can also define methods that provide parameters in subclasses and use
299 them in test methods defined in superclasses, as well as redefine data
300 providing methods in subclasses to be used by test method defined in a
301 superclass. That you can doesn't mean you should. Inheritance in tests is
302 usually a code smell (readability hurts), so make sure you know what you're
303 doing.
304
305 <h4 id="c">c. Parameterising tests via external classes</h4>
306 <p>
307 For more complex cases you may want to externalise the method that provides
308 parameters or use more than one method to provide parameters to a single test
309 method. You can easily do that like this:
310
311 <pre>
312   &#064;Test
313   &#064;Parameters(source = CartoonCharactersProvider.class)
314   public void testReadyToLiveInJungle(int yearsInJungle, String person) {
315       ...
316   }
317   ...
318   class CartoonCharactersProvider {
319      public static Object[] provideCartoonCharactersManually() {
320          return $(
321              $(0, "Tarzan"),
322              $(20, "Jane")
323          );
324      }
325      public static Object[] provideCartoonCharactersFromDB() {
326          return cartoonsRepository.loadCharacters();
327      }
328   }
329 </pre>
330
331 All methods starting with <code>provide</code> are used as parameter
332 providers.
333
334 <p>
335 Sometimes though you may want to use just one or few methods of some class to
336 provide you parameters. This can be done as well like this:
337
338 <pre>
339   &#064;Test
340   &#064;Parameters(source = CartoonCharactersProvider.class, method = "cinderellaCharacters,snowwhiteCharacters")
341   public void testPrincesses(boolean isAPrincess, String characterName) {
342       ...
343   }
344 </pre>
345
346
347 <h4 id="d">d. Loading parameters from files</h4> You may be interested in
348 loading parameters from a file. This is very easy if it's a CSV file with
349 columns in the same order as test method parameters:
350
351 <pre>
352   &#064;Test
353   &#064;FileParameters("cartoon-characters.csv")
354   public void shouldSurviveInJungle(int yearsInJungle, String person) {
355       ...
356   }
357 </pre>
358
359 But if you want to process the data from the CSV file a bit to use it in the
360 test method arguments, you
361 need to use an <code>IdentityMapper</code>. Look:
362
363 <pre>
364   &#064;Test
365   &#064;FileParameters(value = "cartoon-characters.csv", mapper = CartoonMapper.class)
366   public void shouldSurviveInJungle(Person person) {
367       ...
368   }
369
370   public class CartoonMapper extends IdentityMapper {
371     &#064;Override
372     public Object[] map(Reader reader) {
373         Object[] map = super.map(reader);
374         List&lt;Object[]&gt; result = new LinkedList&lt;Object[]&gt;();
375         for (Object lineObj : map) {
376             String line = (String) lineObj; // line in a format just like in the file
377             result.add(new Object[] { ..... }); // some format edible by the test method
378         }
379         return result.toArray();
380     }
381
382 }
383 </pre>
384
385 A CSV files with a header are also supported with the use of <code>CsvWithHeaderMapper</code> class.
386
387 You may also want to use a completely different file format, like excel or
388 something. Then just parse it yourself:
389
390 <pre>
391   &#064;Test
392   &#064;FileParameters(value = "cartoon-characters.xsl", mapper = ExcelCartoonMapper.class)
393   public void shouldSurviveInJungle(Person person) {
394       ...
395   }
396
397   public class CartoonMapper implements DataMapper {
398     &#064;Override
399     public Object[] map(Reader fileReader) {
400         ...
401     }
402 }
403 </pre>
404
405 As you see, you don't need to open or close the file. Just read it from the
406 reader and parse it the way you wish.
407
408 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
409 the classpath by prefixing the file name with <code>classpath:</code>
410
411 <h4 id="e">e. Converting parameter values</h4>
412 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
413 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
414 without manually converting the value in the test. This is where the converters become handy. It's enough to annotate a parameter with
415 a <code>&#064;ConvertParam</code> annotation, give it a converter class and possibly some options (like date format in this case) and
416 you're done. Here's an example:
417 <pre>
418     &#064;Test
419     &#064;Parameters({ "01.12.2012, A" })
420     public void convertMultipleParams(
421                  &#064;ConvertParam(value = StringToDateConverter.class, options = "dd.MM.yyyy") Date date,
422                  &#064;ConvertParam(LetterToASCIIConverter.class) int num) {
423
424         Calendar calendar = Calendar.getInstance();
425         calendar.setTime(date);
426
427         assertEquals(2012, calendar.get(Calendar.YEAR));
428         assertEquals(11, calendar.get(Calendar.MONTH));
429         assertEquals(1, calendar.get(Calendar.DAY_OF_MONTH));
430
431         assertEquals(65, num);
432     }
433 </pre>
434
435 <h3 id="p2">2. Usage with Spring</h3>
436 <p>
437 You can easily use JUnitParams together with Spring. The only problem is that
438 Spring's test framework is based on JUnit runners, and JUnit allows only one
439 runner to be run at once. Which would normally mean that you could use only
440 one of Spring or JUnitParams. Luckily we can cheat Spring a little by adding
441 this to your test class:
442
443 <pre>
444 private TestContextManager testContextManager;
445
446 &#064;Before
447 public void init() throws Exception {
448     this.testContextManager = new TestContextManager(getClass());
449     this.testContextManager.prepareTestInstance(this);
450 }
451 </pre>
452
453 This lets you use in your tests anything that Spring provides in its test
454 framework.
455
456 <h3 id="p3">3. Other options</h3> <h4>Customizing how parameter objects are
457 shown in IDE</h4>
458 <p>
459 Tests show up in your IDE as a tree with test class name being the root, test
460 methods being nodes, and parameter sets being the leaves. If you want to
461 customize the way an parameter object is shown, create a <b>toString</b>
462 method for it.
463 <h4>Empty parameter sets</h4>
464 <p>
465 If you create a parameterised test, but won't give it any parameter sets, it
466 will be ignored and you'll be warned about it.
467 <h4>Parameterised test with no parameters</h4>
468 <p>
469 If for some reason you want to have a normal non-parameterised method to be
470 annotated with @Parameters, then fine, you can do it. But it will be ignored
471 then, since there won't be any params for it, and parameterised tests need
472 parameters to execute properly (parameters are a part of test setup, right?)
473 <h4>JUnit Rules</h4>
474 <p>
475 The runner for parameterised test is trying to keep all the @Rule's running,
476 but if something doesn't work - let me know. It's pretty tricky, since the
477 rules in JUnit are chained, but the chain is kind of... unstructured, so
478 sometimes I need to guess how to call the next element in chain. If you have
479 your own rule, make sure it has a field of type Statement which is the next
480 statement in chain to call.
481 <h4>Test inheritance</h4>
482 <p>
483 Although usually a bad idea, since it makes tests less readable, sometimes
484 inheritance is the best way to remove repetitions from tests. JUnitParams is
485 fine with inheritance - you can define a common test in the superclass, and
486 have separate parameters provider methods in the subclasses. Also the other
487 way around is ok, you can define parameter providers in superclass and have
488 tests in subclasses uses them as their input.</div>
489<dl>
490<dt><span class="simpleTagLabel">Author:</span></dt>
491<dd>Pawel Lipinski (lipinski.pawel@gmail.com)</dd>
492</dl>
493</li>
494</ul>
495</div>
496<div class="summary">
497<ul class="blockList">
498<li class="blockList">
499<!-- ======== CONSTRUCTOR SUMMARY ======== -->
500<ul class="blockList">
501<li class="blockList"><a name="constructor.summary">
502<!--   -->
503</a>
504<h3>Constructor Summary</h3>
505<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
506<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
507<tr>
508<th class="colOne" scope="col">Constructor and Description</th>
509</tr>
510<tr class="altColor">
511<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>&lt;?&gt;&nbsp;klass)</code>&nbsp;</td>
512</tr>
513</table>
514</li>
515</ul>
516<!-- ========== METHOD SUMMARY =========== -->
517<ul class="blockList">
518<li class="blockList"><a name="method.summary">
519<!--   -->
520</a>
521<h3>Method Summary</h3>
522<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
523<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
524<tr>
525<th class="colFirst" scope="col">Modifier and Type</th>
526<th class="colLast" scope="col">Method and Description</th>
527</tr>
528<tr id="i0" class="altColor">
529<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>
530<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>...&nbsp;params)</code>
531<div class="block">Shortcut for returning an array of objects.</div>
532</td>
533</tr>
534<tr id="i1" class="rowColor">
535<td class="colFirst"><code>protected void</code></td>
536<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>&lt;<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>&gt;&nbsp;errors)</code>&nbsp;</td>
537</tr>
538<tr id="i2" class="altColor">
539<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>&lt;org.junit.runners.model.FrameworkMethod&gt;</code></td>
540<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#computeTestMethods--">computeTestMethods</a></span>()</code>&nbsp;</td>
541</tr>
542<tr id="i3" class="rowColor">
543<td class="colFirst"><code>protected org.junit.runner.Description</code></td>
544<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&nbsp;method)</code>&nbsp;</td>
545</tr>
546<tr id="i4" class="altColor">
547<td class="colFirst"><code>org.junit.runner.Description</code></td>
548<td class="colLast"><code><span class="memberNameLink"><a href="../junitparams/JUnitParamsRunner.html#getDescription--">getDescription</a></span>()</code>&nbsp;</td>
549</tr>
550<tr id="i5" class="rowColor">
551<td class="colFirst"><code>protected org.junit.runners.model.Statement</code></td>
552<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&nbsp;method,
553             <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>&nbsp;test)</code>&nbsp;</td>
554</tr>
555<tr id="i6" class="altColor">
556<td class="colFirst"><code>protected void</code></td>
557<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&nbsp;method,
558        org.junit.runner.notification.RunNotifier&nbsp;notifier)</code>&nbsp;</td>
559</tr>
560</table>
561<ul class="blockList">
562<li class="blockList"><a name="methods.inherited.from.class.org.junit.runners.BlockJUnit4ClassRunner">
563<!--   -->
564</a>
565<h3>Methods inherited from class&nbsp;org.junit.runners.BlockJUnit4ClassRunner</h3>
566<code>createTest, describeChild, getChildren, getTestRules, methodBlock, possiblyExpectingExceptions, rules, testName, validateConstructor, validateFields, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor, withAfters, withBefores, withPotentialTimeout</code></li>
567</ul>
568<ul class="blockList">
569<li class="blockList"><a name="methods.inherited.from.class.org.junit.runners.ParentRunner">
570<!--   -->
571</a>
572<h3>Methods inherited from class&nbsp;org.junit.runners.ParentRunner</h3>
573<code>childrenInvoker, classBlock, classRules, filter, getName, getRunnerAnnotations, getTestClass, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses</code></li>
574</ul>
575<ul class="blockList">
576<li class="blockList"><a name="methods.inherited.from.class.org.junit.runner.Runner">
577<!--   -->
578</a>
579<h3>Methods inherited from class&nbsp;org.junit.runner.Runner</h3>
580<code>testCount</code></li>
581</ul>
582<ul class="blockList">
583<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
584<!--   -->
585</a>
586<h3>Methods inherited from class&nbsp;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>
587<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>
588</ul>
589</li>
590</ul>
591</li>
592</ul>
593</div>
594<div class="details">
595<ul class="blockList">
596<li class="blockList">
597<!-- ========= CONSTRUCTOR DETAIL ======== -->
598<ul class="blockList">
599<li class="blockList"><a name="constructor.detail">
600<!--   -->
601</a>
602<h3>Constructor Detail</h3>
603<a name="JUnitParamsRunner-java.lang.Class-">
604<!--   -->
605</a>
606<ul class="blockListLast">
607<li class="blockList">
608<h4>JUnitParamsRunner</h4>
609<pre>public&nbsp;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>&lt;?&gt;&nbsp;klass)
610                  throws org.junit.runners.model.InitializationError</pre>
611<dl>
612<dt><span class="throwsLabel">Throws:</span></dt>
613<dd><code>org.junit.runners.model.InitializationError</code></dd>
614</dl>
615</li>
616</ul>
617</li>
618</ul>
619<!-- ============ METHOD DETAIL ========== -->
620<ul class="blockList">
621<li class="blockList"><a name="method.detail">
622<!--   -->
623</a>
624<h3>Method Detail</h3>
625<a name="collectInitializationErrors-java.util.List-">
626<!--   -->
627</a>
628<ul class="blockList">
629<li class="blockList">
630<h4>collectInitializationErrors</h4>
631<pre>protected&nbsp;void&nbsp;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>&lt;<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>&gt;&nbsp;errors)</pre>
632<dl>
633<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
634<dd><code>collectInitializationErrors</code>&nbsp;in class&nbsp;<code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
635</dl>
636</li>
637</ul>
638<a name="runChild-org.junit.runners.model.FrameworkMethod-org.junit.runner.notification.RunNotifier-">
639<!--   -->
640</a>
641<ul class="blockList">
642<li class="blockList">
643<h4>runChild</h4>
644<pre>protected&nbsp;void&nbsp;runChild(org.junit.runners.model.FrameworkMethod&nbsp;method,
645                        org.junit.runner.notification.RunNotifier&nbsp;notifier)</pre>
646<dl>
647<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
648<dd><code>runChild</code>&nbsp;in class&nbsp;<code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
649</dl>
650</li>
651</ul>
652<a name="computeTestMethods--">
653<!--   -->
654</a>
655<ul class="blockList">
656<li class="blockList">
657<h4>computeTestMethods</h4>
658<pre>protected&nbsp;<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>&lt;org.junit.runners.model.FrameworkMethod&gt;&nbsp;computeTestMethods()</pre>
659<dl>
660<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
661<dd><code>computeTestMethods</code>&nbsp;in class&nbsp;<code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
662</dl>
663</li>
664</ul>
665<a name="methodInvoker-org.junit.runners.model.FrameworkMethod-java.lang.Object-">
666<!--   -->
667</a>
668<ul class="blockList">
669<li class="blockList">
670<h4>methodInvoker</h4>
671<pre>protected&nbsp;org.junit.runners.model.Statement&nbsp;methodInvoker(org.junit.runners.model.FrameworkMethod&nbsp;method,
672                                                          <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>&nbsp;test)</pre>
673<dl>
674<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
675<dd><code>methodInvoker</code>&nbsp;in class&nbsp;<code>org.junit.runners.BlockJUnit4ClassRunner</code></dd>
676</dl>
677</li>
678</ul>
679<a name="getDescription--">
680<!--   -->
681</a>
682<ul class="blockList">
683<li class="blockList">
684<h4>getDescription</h4>
685<pre>public&nbsp;org.junit.runner.Description&nbsp;getDescription()</pre>
686<dl>
687<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
688<dd><code>getDescription</code>&nbsp;in interface&nbsp;<code>org.junit.runner.Describable</code></dd>
689<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
690<dd><code>getDescription</code>&nbsp;in class&nbsp;<code>org.junit.runners.ParentRunner&lt;org.junit.runners.model.FrameworkMethod&gt;</code></dd>
691</dl>
692</li>
693</ul>
694<a name="describeMethod-org.junit.runners.model.FrameworkMethod-">
695<!--   -->
696</a>
697<ul class="blockList">
698<li class="blockList">
699<h4>describeMethod</h4>
700<pre>protected&nbsp;org.junit.runner.Description&nbsp;describeMethod(org.junit.runners.model.FrameworkMethod&nbsp;method)</pre>
701</li>
702</ul>
703<a name="Z:Z:D-java.lang.Object...-">
704<!--   -->
705</a>
706<ul class="blockListLast">
707<li class="blockList">
708<h4>$</h4>
709<pre>public static&nbsp;<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>[]&nbsp;$(<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>...&nbsp;params)</pre>
710<div class="block">Shortcut for returning an array of objects. All parameters passed to this
711 method are returned in an <code>Object[]</code> array.</div>
712<dl>
713<dt><span class="paramLabel">Parameters:</span></dt>
714<dd><code>params</code> - Values to be returned in an <code>Object[]</code> array.</dd>
715<dt><span class="returnLabel">Returns:</span></dt>
716<dd>Values passed to this method.</dd>
717</dl>
718</li>
719</ul>
720</li>
721</ul>
722</li>
723</ul>
724</div>
725</div>
726<!-- ========= END OF CLASS DATA ========= -->
727<!-- ======= START OF BOTTOM NAVBAR ====== -->
728<div class="bottomNav"><a name="navbar.bottom">
729<!--   -->
730</a>
731<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
732<a name="navbar.bottom.firstrow">
733<!--   -->
734</a>
735<ul class="navList" title="Navigation">
736<li><a href="../overview-summary.html">Overview</a></li>
737<li><a href="package-summary.html">Package</a></li>
738<li class="navBarCell1Rev">Class</li>
739<li><a href="class-use/JUnitParamsRunner.html">Use</a></li>
740<li><a href="package-tree.html">Tree</a></li>
741<li><a href="../deprecated-list.html">Deprecated</a></li>
742<li><a href="../index-all.html">Index</a></li>
743<li><a href="../help-doc.html">Help</a></li>
744</ul>
745</div>
746<div class="subNav">
747<ul class="navList">
748<li><a href="../junitparams/FileParameters.html" title="annotation in junitparams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
749<li><a href="../junitparams/Parameters.html" title="annotation in junitparams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
750</ul>
751<ul class="navList">
752<li><a href="../index.html?junitparams/JUnitParamsRunner.html" target="_top">Frames</a></li>
753<li><a href="JUnitParamsRunner.html" target="_top">No&nbsp;Frames</a></li>
754</ul>
755<ul class="navList" id="allclasses_navbar_bottom">
756<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
757</ul>
758<div>
759<script type="text/javascript"><!--
760  allClassesLink = document.getElementById("allclasses_navbar_bottom");
761  if(window==top) {
762    allClassesLink.style.display = "block";
763  }
764  else {
765    allClassesLink.style.display = "none";
766  }
767  //-->
768</script>
769</div>
770<div>
771<ul class="subNavList">
772<li>Summary:&nbsp;</li>
773<li>Nested&nbsp;|&nbsp;</li>
774<li>Field&nbsp;|&nbsp;</li>
775<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
776<li><a href="#method.summary">Method</a></li>
777</ul>
778<ul class="subNavList">
779<li>Detail:&nbsp;</li>
780<li>Field&nbsp;|&nbsp;</li>
781<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
782<li><a href="#method.detail">Method</a></li>
783</ul>
784</div>
785<a name="skip.navbar.bottom">
786<!--   -->
787</a></div>
788<!-- ======== END OF BOTTOM NAVBAR ======= -->
789<p class="legalCopy"><small>Copyright &#169; 2014 <a href="http://pragmatists.pl">Pragmatists</a>. All rights reserved.</small></p>
790</body>
791</html>
792