﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Noah-文章分类-Mockito</title><link>http://www.blogjava.net/Noah/category/53951.html</link><description>&lt;span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri" lang="ZH-CN"&gt;不是经典我不发&lt;/span&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 20 Jul 2016 13:07:18 GMT</lastBuildDate><pubDate>Wed, 20 Jul 2016 13:07:18 GMT</pubDate><ttl>60</ttl><item><title>Mockito的高级用法</title><link>http://www.blogjava.net/Noah/articles/431236.html</link><dc:creator>眼镜蛇</dc:creator><author>眼镜蛇</author><pubDate>Mon, 18 Jul 2016 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/Noah/articles/431236.html</guid><wfw:comment>http://www.blogjava.net/Noah/comments/431236.html</wfw:comment><comments>http://www.blogjava.net/Noah/articles/431236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Noah/comments/commentRss/431236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Noah/services/trackbacks/431236.html</trackback:ping><description><![CDATA[之前写了一篇关于《<a href="http://www.blogjava.net/Noah/articles/404846.html" target="_blank">用Mockito绕过DAO层直接去测试Service层</a>》，不太全面，这次对之前的做了点补充<br />有的时候这个方法的返回值是通过参数返回的。比如类似于这样：<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;test(Map&nbsp;map){<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">do&nbsp;something</span><span style="color: #008000; "><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;map.put("response","success");<br />
}</div>这个时候需要这样使用：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->when(&nbsp;myMock.someMethod(&nbsp;any(&nbsp;Map.<span style="color: #0000FF; ">class</span>&nbsp;)&nbsp;)&nbsp;).thenAnswer(&nbsp;(&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Answer&lt;Void&gt;()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;Void&nbsp;answer(&nbsp;InvocationOnMock&nbsp;invocation&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Throwable&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object[]&nbsp;args&nbsp;=&nbsp;invocation.getArguments();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;arg1&nbsp;=&nbsp;(Map)args[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arg1.put("response",&nbsp;"failed");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">null</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;)&nbsp;);</div><br /><br />还有一种用法，返回参数值做为函数返回值<br /><div>mockito 1.9.5之后，提供一个方便的方法来实现这个需要，在这之前可以使用一个匿名函数来返回一个answer来实现。</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->when(myMock.myFunction(anyString())).then(returnsFirstArg());</div></div><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">其中returnsFirstArg()是org.mockito.AdditionalAnswers中的一个静态方法。</span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">在这个类中还有其他的一些类似方法</span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">returnsSecondArg()</span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><div style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">returnsLastArg()</div><div style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">ReturnsArgumentAt(int position)</div><div></div><img src ="http://www.blogjava.net/Noah/aggbug/431236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Noah/" target="_blank">眼镜蛇</a> 2016-07-18 17:18 <a href="http://www.blogjava.net/Noah/articles/431236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Mockito绕过DAO层直接去测试Service层</title><link>http://www.blogjava.net/Noah/articles/404846.html</link><dc:creator>眼镜蛇</dc:creator><author>眼镜蛇</author><pubDate>Thu, 10 Oct 2013 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/Noah/articles/404846.html</guid><wfw:comment>http://www.blogjava.net/Noah/comments/404846.html</wfw:comment><comments>http://www.blogjava.net/Noah/articles/404846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Noah/comments/commentRss/404846.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Noah/services/trackbacks/404846.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这里用代码的形式来记录一下怎么使用Mockito，主要是怎么测试Private, static, 和 void 这种无返回值的方法。这里用到了另外一个包PowerMock。首先建一个父类BaseCar.javaCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHigh...&nbsp;&nbsp;<a href='http://www.blogjava.net/Noah/articles/404846.html'>阅读全文</a><img src ="http://www.blogjava.net/Noah/aggbug/404846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Noah/" target="_blank">眼镜蛇</a> 2013-10-10 18:00 <a href="http://www.blogjava.net/Noah/articles/404846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>