stub和mock
1.什么是stub
Stub:
For replacing a method with code that returns a specified result
简单说就是你可以用stub
去伪造(fake)一个方法,阻断对原来方法的调用.
还有一种小白解释:
.为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根(stub),存根负责接收本地方法调用,并将它们委派给各自的具体实现对象。
2.为什么要stub
我们在做单元测试,被测的功能可能会非常复杂,功能函数里面又调用了其它的复杂方法等等,而测试所有功能是集成测试应该做的工作.
在实际测试中,我们将测试工作分层进行,将暂时不关注的东西屏蔽掉,当被测功能调用他的时候给他返回一个可用的值。
3.什么是mock
Mock:
A stub with an expectations that the method gets called
mock
就是stub + expectation
, 说它是stub
是因为它也可以像stub
一样伪造方法,阻断对原来方法的调用, expectation
是说它不仅伪造了这个方法,它还期望你(必须)调用这个方法,如果没有被调用到,这个test
就fail
了
reference: https://ruby-china.org/topics/10977