optionalreturntest.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 104 行

GROOVY
104
字号
class OptionalReturnTest extends GroovyTestCase {

	def y
	
    void testSingleExpression() {
        def value = foo()
		
        assert value == 'fooReturn'
    }

    void testLastExpressionIsSimple() {
        def value = bar()
        
        assert value == 'barReturn'
    }

    void testLastExpressionIsBooleanExpression() {
        def value = foo2()
        
        assert value

        value = foo3()
        
        assert value == false
    }

    void testLastExpressionIsAssignment() {
        def value = assign()
        
        assert value == 'assignReturn'
        
        value = assignField()
        
        assert value == 'assignFieldReturn'
    }

    void testLastExpressionIsMethodCall() {
        def value = methodCall()
        
        assert value == 'fooReturn'
    }

    void testEmptyExpression() {
        def value = nullReturn()
        
        assert value == null
    }

    //  now this is not a compile time error in jsr-03
    void testVoidMethod() {
        def value = voidMethod()

        assert value == null
    }

    void testNonAssignmentLastExpressions() {
        def value = lastIsAssert()
        
        assert value == null
    }

    def foo() {
        'fooReturn'
    }	
	
    def bar() {
        def x = 'barReturn'
        x
    }
	
    def foo2() {
        def x = 'cheese'
        x == 'cheese'
    }
	
    def foo3() {
        def x = 'cheese'
        x == 'edam'
    }
	
    def assign() {
        def x = 'assignReturn'
    }
	
    def assignField() {
        y = 'assignFieldReturn'
    }
    
    def nullReturn() {
    }

    def lastIsAssert() {
        assert 1 == 1
    }

    def methodCall() {
        foo()
    }
    
    void voidMethod() {
        foo()
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?