groovy662.groovy
来自「大名鼎鼎的java动态脚本语言。已经通过了sun的认证」· GROOVY 代码 · 共 67 行
GROOVY
67 行
package groovy.bugs// The order of the classes is crucial, the first must be the GroovyTestCase. Its name doesn't// matter it just has to be first./** * Test class and support to realize the GROOVY-662 test. There is a difference between * improper uses of properties between Groovy defined classes and Java defined classes. There * is no difference between correct uses so this is not a problem just an anti-regression test. * * @author Russel Winder * @version $Revision: 1.3 $ */ class Groovy662 extends GroovyTestCase { private String expected = "Hello" private usePropertyCorrectly ( def object ) { return object.@myProperty } private usePropertyIncorrectly ( def object ) { return object.myProperty } private useMethod ( def object ) { return object.getMyProperty ( ) } private void doAssertions ( def object ) { assertTrue ( useMethod ( object ) == expected ) assertTrue ( usePropertyCorrectly ( object ) == expected ) } private String theTestScriptDefinitions = """String expected = "Hello"def usePropertyCorrectly ( def object ) { return object.@myProperty }def usePropertyIncorrectly ( def object ) { return object.myProperty }def useMethod ( def object ) { return object.getMyProperty ( ) }""" private String theTestScriptAssertions = """assert useMethod ( object ) == expectedassert usePropertyCorrectly ( object ) == expected""" public void testJavaClass ( ) { def object = new groovy.bugs.Groovy662_JavaClass ( ) doAssertions ( object ) assertTrue ( usePropertyIncorrectly ( object ) == null ) } public void testGroovyClass ( ) { def object = new Groovy662_GroovyClass ( ) doAssertions ( object ) assertTrue ( usePropertyIncorrectly ( object ) == expected ) } public void testJavaClassAsScript ( ) { assertScript ( theTestScriptDefinitions + """def object = new groovy.bugs.Groovy662_JavaClass ( )""" + theTestScriptAssertions + """assert usePropertyIncorrectly ( object ) == null""") } public void testGroovyClassAsScript ( ) { assertScript ( theTestScriptDefinitions + """class Groovy662_GroovyClass extends HashMap { String myProperty = "Hello" public String getMyProperty ( ) { return myProperty }}def object = new Groovy662_GroovyClass ( )""" + theTestScriptAssertions + """assert usePropertyIncorrectly ( object ) == expected""") }}class Groovy662_GroovyClass extends HashMap { String myProperty = "Hello" public String getMyProperty ( ) { return myProperty }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?