什么是标记?
Mock是虚拟对象,创建它是为了模拟实际对象。 这些虚拟对象的行为是可控的。 很容易理解,Mock可以被认为是“汽车碰撞实验”的“假人”。
实际的软件体系结构
软件体系结构测试
为什么需要Mock?
实际软件架构中的对象行为不确定(eg:小时,对象状态) )。
实际对象的某些状态还很难构建(eg:网络抖动) )。
实际对象在执行某些操作时会花费时间,影响测试进度(eg:部分数据库初始化)。
测试驱动开发(TDD )要求在编写测试代码之后进行开发。 这样,通常还没有开发实际对象,或者实际对象只能通过硬件进行模拟
在实际测试中,需要关注如何调用实际对象以及实际对象的内部状态如何
上述问题都可以通过引入Mock来解决。
什么是Mockito?
Mockito是用于Java单元测试的Mock框架。
你为什么选择了Mockito?
Mockito是堆栈溢出社区投票的最佳Java Mock框架
Github的Top4上的Library
3 .使用简洁优雅的API可以写一个漂亮的单元测试用例。 这些单元测试语法符合自然语言,容易阅读
Android Studio如何设置Mockito的使用?
android studio的默认构建工具是gradle,它只需在相应的build.grade中添加Mockito依赖关系即可。
存储库{ j center (}
dependencies { test compile ' org.mock ITO : mock ITO-core :1.' }
Mockito能起到什么样的功能?
检查Mock对象的函数执行和执行的次数
具有Mock对象的函数具有返回值,可以设置返回值。 void的函数可以是抛出异常,也就是所谓的装载追溯
验证Mock对象函数的执行顺序
参数匹配。 有很多内置参数,也可以自己实现。 这在验证函数交互和设置返回值时提供了更大的灵活性
可以捕获参数,并将其用于后续验证和设置
Mockito的常见API和使用方法
创建Mock对象-创建Mock对象有两种方法:使用Mock函数- publicstatictmock (classclasstomock )
使用@Mock注释-但是,必须使用@Test函数初始化,或使用内置的Junit Runner
检查是否执行了Mock对象函数-publicstatictverify(tmock,验证模式),其中mode为times(x )、atLeastOnce 验证(mock,atLeastOnce ().some method (any string ) );
在具有模拟对象返回值的函数中安装桩(-when(methodcall ).thenReturn ) )或-when(methodcall ).thenThrow ) )
在返回虚拟对象void的函数上加桩-dothrow(newruntimeexception () ).when(mockobject ).methodCall );
参数匹配-默认情况下,-Mockito使用java的equals判断函数参数值,但为了更灵活,参数匹配功能when (mocked object.method call (anyint ) ).then ren
when (已锁定对象. contains (arg that ) isvalid () ).thenreturn ) ) element ); //isValid ()是自定义的参数匹配
验证伪对象函数执行顺序的persondal.add(any ) );
personDAL.getAll (;
在订单上=在订单上(人员达);
inorder.verify(Persondal ).add (any );
norder.verify(persondal ).getAll );
捕获伪对象函数参数,并进一步验证捕获的参数argumentcaptorargument=argument captor.for class (person.class )。
验证(mock ).dosomething(argument.capture );
assertequals('John ',argument.getValue ) ).getName );
关于Mockito,我们将继续根据实际项目整理实践知识。
(0)或份额)0)我喜欢