mocksinglecalltest.groovy
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 93 行
GROOVY
93 行
package groovy.mock.interceptor
import junit.framework.AssertionFailedError
/**
Testing Groovy Mock support for single calls to the Collaborator with
no, one, multiple, or arbitrary arguments, exceptions and failures.
@author Dierk Koenig
*/
class MockSingleCallTest extends GroovyTestCase {
MockFor mocker
void setUp() {
mocker = new MockFor(Collaborator.class)
}
void testSingleCallNoArgs() {
mocker.demand.one { 1 }
mocker.use {
assertEquals 1, new Caller().collaborateOne()
}
}
void testSingleCallOneArg() {
mocker.demand.one { arg -> return arg }
mocker.use {
assertEquals 2, new Caller().collaborateOne(2)
}
}
void testSingleCallTwoArgs() {
mocker.demand.one { one, two -> return one + two }
mocker.use {
assertEquals 2, new Caller().collaborateOne(1, 1)
}
}
void testNoSingleCallTwoArgsWhenNoArgDemanded() {
mocker.demand.one { 2 }
mocker.use {
shouldFail {
assertEquals 2, new Caller().collaborateOne(1, 1)
}
}
}
void testSingleCallTwoArgsWhenArbitraryArgsDemanded() {
mocker.demand.one { Object[] arg -> 2 }
mocker.use {
assertEquals 2, new Caller().collaborateOne(1, 1)
}
}
void testSingleCallTwoArgsWhenDefaultArgsDemanded() {
mocker.demand.one { one=null, two=null -> 2 }
mocker.use {
assertEquals 2, new Caller().collaborateOne(1, 1)
}
}
void testVerifyFailsIfOneDemandedButNoneExcecuted() {
mocker.demand.one { 1 }
def msg = shouldFail(AssertionFailedError.class) {
mocker.use {
// no call
}
}
assert msg =~ /0.*1..1.*never called/
}
void testSingleCallExceptionDemanded() {
mocker.demand.one { throw new IllegalArgumentException() }
mocker.use {
//shouldFail(IllegalArgumentException.class) {
shouldFail { // todo: should fail with IllegalArgumentException instead of GroovyRuntimeException
new Caller().collaborateOne()
}
}
}
void testSingleCallFailDemanded() {
mocker.demand.one { fail 'just kidding' }
mocker.use {
shouldFail() { new Caller().collaborateOne() }
}
}
void testJavaCall() {
mocker = new MockFor(String.class)
mocker.demand.toString { 'groovy' }
mocker.use {
assertEquals 'groovy', new Caller().collaborateJava()
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?