Dummy, 有时候, 被测试方法需要一些参数, 但是这些参数实际上并没有用到, 这时就可以创建dummy, 它们的存在只是为了满足调用方法的参数要求.
Stub, (状态测试)....例如我们可以使用Stub把相关数据放到内存里查询而不是查询真实的数据库; 如果某个测试类需要依赖项的某个Property的值, 那么stub就设定这个值就行.
Mock, (行为/交互测试)....与Stub不同的是, Mock期待的不是返回值, Mock期待的是动作的执行. 它是依赖项的动态包装, 它可以对哪个方法以什么样的顺序被待测试系统(SUT)调用的这个期待行为进行预编程....也就是说被测试的系统只有按照特定的顺序调用mock依赖项的特定方法, 那么该系统才算测试通过.
还有其它的一些术语就不介绍了, 主要是这四个.
对于Stub 和 Mock ,可以看下面两张图例:
?...这两个方法的作用是一样的, 但是调用方法略有不同.
但是此时, 该接口的实现类还没有开发完毕:
?
在转会审批类里面, 需要添加这个依赖, 使用的是接口:
?