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 + -
显示快捷键?