java单元测试如何返回void的方法

大家写单元测试时候,一定比较不喜欢测试那些返回void的方法,因为大多数是执行一些动作序列,感觉没法测试,其实,对于这类方法,如果方法的执行是可能发生异常的,(比如方法本身就用throws语句),那么这种方法就算是void返回值,也是可以测试的。

举个例子,以下就是我写的一个为返回void方法进行的单元测试:

@Test
         public void testServeResource()    throws Exception {
        MockWebServer mockWebServer = new MockWebServer();
        mockWebServer.init();
        MockResourceRequest request = new MockResourceRequest();
        request.setParameter("id", "4");
        request.setParameter("name", "walmart");
        MockResourceResponse response = new MockResourceResponse();
        MockPortletPreferences preferences = new MockPortletPreferences();
        preferences.setValue(RSLaunchConstants.RS_LAUNCH_PORTLET_PREFERENCE_REST_WS_URL, "http://localhost:28080/");
        request.setPreferences(preferences); 

         try{
                  rsLaunchPortlet.serveResource(request, response);
                 mockWebServer.destory();
                 assertTrue(true);
         }catch(Exception ex){
              //normally,the execution should never reach here ,so if reach here , we fail this UT
              assertTrue(false);
         }
}

我们可以看到,最关键的地方在第13到20行之间,我们用一个try块包含了可能炮异常的代码段,并在这个块尾部加上assertTrue(true),而在catch块中加上assertTrue(false),那么结果就很明了了,如果这个方法是正确的执行,那么它肯定是执行完try块中的所有的语句,所以会执行assertTrue(true)而显示绿条。但是如果这个方法执行不正确,那么就会在14或者15行抛出异常,从而执行catch块中,所以就会执行到19行,从而显示红条了。很简单吧

本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/989564

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索单元测试
, 方法
, request
, setparameter
, void
Preferences
java void 无返回值吗、java void返回值、void 单元测试、void方法的单元测试、单元测试 void方法,以便于您获取更多的相关知识。

时间: 2024-10-31 10:02:33

java单元测试如何返回void的方法的相关文章

java中除了非void方法有返回值需要用到return语句外

问题描述 java中除了非void方法有返回值需要用到return语句外 java中除了非void方法有返回值需要用到return语句外,还有其他什么语句需要retrun语句 因为我看程序源码的时候看到一个方法有两条return 语句,我看来看去只发现这段程序代码只有一个方法,其中还有if....else if语句还有try....catch语句. 解决方案 如果直接return就跳出了这个方法,下面的程序不需用执行,否则还会继续下面的逻辑;代码有时候需要捕捉特定的异常给用户一定的反馈,判断异常

Java访问WebService返回XML数据的方法

  本文实例讲述了Java访问WebService返回XML数据的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Java调用MySQL存储过程并获得返回值的方法_java

本文实例讲述了Java调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体如下: private void empsInDept(Connection myConnect, int deptId) throws SQLException { CallableStatement cStmt = myConnect.prepareCall("{CALL sp_emps_in_dept(?)}"); cStmt.setInt(1, deptId); cStmt.execute

Java访问WebService返回XML数据的方法_java

本文实例讲述了Java访问WebService返回XML数据的方法.分享给大家供大家参考.具体如下: import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.io.FileNotFoundException; import java.io

java监听-java中匿名类作为一个方法的参数的时候是不是默认返回一个匿名对象

问题描述 java中匿名类作为一个方法的参数的时候是不是默认返回一个匿名对象 java中匿名类作为一个方法的参数的时候是不是默认返回一个匿名对象 比如用在监听方法当中作为参数的时候 解决方案 可以这么理解,通常是创建一个匿名类的实例然后作为参数传递给指定方法 . 解决方案二: 匿名类,作为参数是返回相应的匿名对象. 具体还是要看调用的函数有参数要求吧,参数是一个对应的匿名类,或者其父类,使用它就没有问题.

Java单元测试(Junit+Mock+代码覆盖率)

单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复.改进或重构之后的正确性. 一般来说,单元测试任务包括 接口功能测试:用来保证接口功能的正确性. 局部数据结构测试(不常用):用来保证接口中的数据结构是正确的 比如变量有无初始值 变量是否溢出 边界条件测试 变量没有赋值(即为NULL) 变量是数值(或字符) 主要边界:最小值,最大值,无穷大(对于DOUB

java数组的返回

假定我们现在想写一个方法,同时不希望它仅仅返回一样东西,而是想返回一系列东西.此时,象C和C++这样的语言会使问题复杂化,因为我们不能返回一个数组,只能返回指向数组的一个指针.这样就非常麻烦,因为很难控制数组的"存在时间",它很容易造成内存"漏洞"的出现. Java采用的是类似的方法,但我们能"返回一个数组".当然,此时返回的实际仍是指向数组的指针.但在Java里,我们永远不必担心那个数组的是否可用--只要需要,它就会自动存在.而且垃圾收集器会在

用JUnit框架实现Java单元测试

随着软件项目的逐渐增大,软件测试在软件开发中的地位显得越来越重要.如果软件项目没有良好的测试流程,随着系统的增大,无论项目管理人员还是软件开发人员都会对项目的前景失去信心,甚至会对项目的目标产生分歧,因为长期以来没有对程序代码和系统设计进行有效的控制,很多问题都被暂时掩盖或逐渐演化成其他的问题.软件开发周期越长,就会使得问题进化的版本越多,最后造成的结果是"剪不断,理还乱". 单元测试是整个测试流程中最基础的部分,它们要求程序员尽可能早地发现问题,并给予控制,这是其一.另外,如果集成测

java+jquery处理xml数据的方法_AJAX相关

本文实例讲述了java+jquery处理xml数据的方法.分享给大家供大家参考.具体实现方法如下: 1. AjaxJqueryXml.js如下: 复制代码 代码如下: function verify(){      //1.获取文本框中的内容      //jquery查找节点的方式,参数加#加上id属性可以找到一个节点      //jquery的方法返回的都是jquery的对象,可以继续在上面执行其他的jquery方法      var jqueryObj = $("#userName&qu