Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
This feature maybe helpful when unit testing and a Category has already been applied.
Supplied TestCase:
import groovy.util.GroovyTestCase class Greeter{ String greet(){ return "Hello Groovy!"; } String say( String s ){ return "I say: "+ s; } } class CategoryOne{ static String greet( Greeter self ){ return "Hello from One"; } } class CategoryTwo{ static String greet( Greeter self ){ return "Hello from Two"; } } class TestCategories extends GroovyTestCase{ void testGreeter_plain(){ def greeter = new Greeter(); assertEquals "Hello Groovy!", greeter.greet(); } void testGreeter_withOne(){ def greeter = new Greeter(); assertEquals "Hello Groovy!", greeter.greet(); use( CategoryOne.class ){ assertEquals "Hello from One", greeter.greet(); } assertEquals "Hello Groovy!", greeter.greet(); } void testGreeter_withTwo(){ def greeter = new Greeter(); assertEquals "Hello Groovy!", greeter.greet(); use( CategoryTwo.class ){ assertEquals "Hello from Two", greeter.greet(); } assertEquals "Hello Groovy!", greeter.greet(); } void testGreeter_withOneAndTwo_nested(){ // fails! def greeter = new Greeter(); assertEquals "Hello Groovy!", greeter.greet(); use( CategoryOne.class ){ assertEquals "Hello from One", greeter.greet(); use( CategoryTwo.class ){ assertEquals "Hello from Two", greeter.greet(); } assertEquals "Hello from One", greeter.greet(); } assertEquals "Hello Groovy!", greeter.greet(); } }
Attachments
Issue Links
- duplicates
-
GROOVY-1437 use not nestable
- Closed