mocktest.groovy

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

GROOVY
96
字号
package groovy.mock

import groovy.mock.GroovyMock
import junit.framework.AssertionFailedError

class MockTest extends GroovyTestCase {

    def mock

    void setUp() {
        mock = GroovyMock.newInstance()
    }

    void testASimpleExpectationCanBeSetAndMet() {
        // expectation
        mock.doSomething("hello")

        // execute
        mock.instance.doSomething("hello")

        // verify
        mock.verify()
    }

    void testASimpleExpectationCanBeSetAndFailed() {
        // expectation
        mock.doSomething("hello")

        // execute
        try {
            mock.instance.doSomething("goodbye")
            fail("expected exception")
        }
        catch (RuntimeException goodException) {
        }

    }

    void testASimpleExpectationCanBeSetButNeverCalledSoVerifyFails() {
        // expectation
        mock.doSomething("hello")

        // execute
        // don't call it

        // verify
        try {
            mock.verify()
            fail("should not have verified")
        }
        catch (AssertionFailedError goodException) {
        }
    }

    void testAnExpectationWithAClosureGivesErrorIFCalledAndClosureFails() {
        mock.doSomething( {arg -> assert arg=="poo" } )

        // verify
        try {
            mock.instance.doSomething("hello")
            fail("Expected verify to fail");
        }
        catch (RuntimeException ex) {
            //expected
        }
    }

    /*
     * was GROOVY-76
     */
    void testAnExpectationwithAClosurePassesIfClosurePasses() {
        mock.doSomething {arg -> assert arg=="hello" }

        // execute
        mock.instance.doSomething("hello")

        //verify
        mock.verify()
    }

    void testAnExpectationWithAClosureGivesErrorIFNotCalled() {
        mock.doSomething( {arg -> assert arg=="poo" } )
        // verify
        try {
            mock.verify()
            fail("Expected verify to fail");
        }
        catch (AssertionFailedError ex) {
            //expected
        }
    }

}


⌨️ 快捷键说明

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