JMock实践---(四)参数匹配

声明:

Author:赵志乾

Date:2017-7-30

Declaration:All Right Reserved!!!


参数匹配


1、参数匹配关联动作

    可以通过不同的传入参数,让Mock对象的同一方法被调用时通过参数匹配来执行不同的动作。如下例所示:

allowing (calculator).add(1,1); will(returnValue(3));
allowing (calculator).add(2,2); will(returnValue(5));
allowing (calculator).sqrt(-1); will(throwException(new IllegalArgumentException());

2、参数匹配关联调用次数

    可以通过不同的传入参数,来为Mock对象的同一方法调用指定不同的调用次数。如下例所示:

one   (calculator).load("x"); will(returnValue(10));
never (calculator).load("y");

3、参数匹配规则

    参数匹配是通过matchers来判定实际参数和预期参数是否相等。此处相等的含义拥有默认定义:对于大多数的参数,取决于其定义的equals方法;null会提前做检查,故可以放心的将null作为实际参数或者预期参数;数组的相等含义是指两者长度相同,且对应位置的元素均相等。

注:如果我们不想采用默认的参数匹配规则,可以在预期中给每个参数定义一个matchers。



注:本博客中的实例代码均来自于JMock Cookbook。


猜你喜欢

转载自blog.csdn.net/zhaoyaxuan001/article/details/76401161