Mockito的使用笔记

以前使用mockito遇到一些问题,例如:变长参数的匹配、自定义参数匹配器,这些在mockito的官方文档(http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html)中并没有详细的介绍,基本上是在stackoverflow上找的资料,摸索成功了,未写总结时间久了,遗忘了,又重新找资料,⊙﹏⊙b汗!

1、自定义参数匹配器、数组参数匹配

本篇文章主要介绍入参为此种格式的public void saveOrders(Order ...order);方法参数matcher方式,

http://linmingren.me/blog/2012/08/mockito%E4%BD%BF%E7%94%A8/

根据文章所述采用any(Order[].class)即可;

我遇到此种情况的入参,依然无法通过,只能把入参改为(Order[] order)方式才可以。

文章还有mock/spy的区别,如何自定义参数匹配器(http://rwehner.wordpress.com/2010/02/23/mockito-some-useful-programming-examples/)。

推荐指数☆☆☆☆☆

 

2、基本资料

http://www.baeldung.com/mockito-verif本篇文章主要是mockito基本用法,其中有ArgumentCaptor的介绍,还有二篇更详细的:

http://hi.baidu.com/hivemind/item/1549ee3d4e4c1abc124b1468

http://www.vogella.com/tutorials/Mockito/article.html

其实最好的文档就是官方的docs

推荐指数☆☆

 

3、自定义返回值

http://googletesting.blogspot.com/2014/03/whenhow-to-use-mockito-answer.html通过实现Answer接口来自定义返回值,文章的评论中有使用Answer特性来指定mock对象返回值的代码:mock对象默认情况下返回对应对象的默认值。

推荐指数☆☆☆

 

4、如何与Spring整合

方案1:使用Springockito,最简单的方案

https://bitbucket.org/kubek2k/springockito/wiki/Home

或者:http://blog.csdn.net/fireofjava/article/details/8687128、http://www.javacodegeeks.com/2013/08/injecting-test-doubles-in-spring-using-mockito-and-beanpostprocessors.html

 

 

方案2:通过Spring@Configuration&&@Bean方式定义实现spring bean的方法:

@Bean

    public ItemSkuFilterTask makeDao() {

        returnMockito.mock(ItemSkuFilterTask.class);

}

好处是可以自定义mock对象对某个方法调用的响应

汪文君是一位软件工程师,他是Mockito框架的核心开发者之一。Mockito是一个用于单元测试的Java框架,它可以帮助开发人员创建和管理模拟对象,从而简化测试过程并提供更好的代码覆盖率。在Mockito中,汪文君做出了重要的贡献,特别是在Stubbing语法方面。Stubbing是指为模拟对象设置返回值,以模拟方法的行为。 在Mockito中,我们可以使用@Mock注解来创建模拟对象。通过使用@Mock注解,我们可以方便地创建一个模拟对象,并在测试方法中使用它。例如,在上面的代码示例中,我们可以看到在testDeepMock方法中,使用了@Mock注解创建了一个PersonService对象。 通过使用@Mock注解,我们可以模拟PersonService对象的行为。例如,在上面的代码示例中,我们可以使用when语句来定义当调用personService.get()方法时,返回一个模拟的Person对象。然后,我们可以调用person对象的foo()方法来进行进一步的测试。 Mockito提供了丰富的功能和语法,使得单元测试变得更简单和灵活。而汪文君作为Mockito框架的开发者之一,为Mockito的发展做出了重要的贡献。它的存在使得我们能够更方便地进行单元测试,并提高代码的质量和可维护性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Mockito 实战总结笔记](https://blog.csdn.net/shaotianyang12/article/details/123662815)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [汪文君powermock实战教学](https://download.csdn.net/download/wangwenjun69/9674655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值