Modifying TestRunner


Add a new test method, ignoreMethodTest, to TestRunnerTest. It will go up against a new test class, IgnoreMethodTest, which contains three methods marked with @TestMethod. One of the test methods (testC) is additionally marked @Ignore. You must verify that this test method is not executed.

 package sis.testing; import java.util.*; import java.lang.reflect.*; public class TestRunnerTest {    private TestRunner runner;    // ...    @TestMethod    public void ignoreMethodTest() {       runTests(IgnoreMethodTest.class);       verifyTests(methodNameA, methodNameB);    }    // ... } // ... class IgnoreMethodTest {    @TestMethod public void testA() {}    @TestMethod public void testB() {}    @Ignore    @TestMethod public void testC() {} } 

The @Ignore annotation declaration looks a lot like the @TestMethod declaration.

 package sis.testing; import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Ignore {} 

To get your tests to pass, make the following modification to TestRunner.

 package sis.testing; import java.util.*; import java.lang.reflect.*; class TestRunner {    ...    private void loadTestMethods() {       testMethods = new HashSet<Method>();       for (Method method: testClass.getDeclaredMethods())          if (method.isAnnotationPresent(TestMethod.class) &&              !method.isAnnotationPresent(Ignore.class))             testMethods.add(method);    }    ... } 



Agile Java. Crafting Code with Test-Driven Development
Agile Javaв„ў: Crafting Code with Test-Driven Development
ISBN: 0131482394
EAN: 2147483647
Year: 2003
Pages: 391
Authors: Jeff Langr

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net