zoukankan      html  css  js  c++  java
  • Junit测试private方法

    1. package com.bill99.junit;  
    2.   
    3. public class ACase {  
    4.   
    5.     private String echoRequest(String request) {  
    6.         return "Hello!"+request;  
    7.     }  
    8.       
    9.     private String echoRequest() {  
    10.         return "Hello!";  
    11.     }  
    12. }  
    13.  
     
    1. package com.bill99.junit;  
    2.   
    3.   
    4. import java.lang.reflect.Method;  
    5.   
    6. import junit.framework.Assert;  
    7.   
    8. import org.junit.Before;  
    9. import org.junit.Test;  
    10.   
    11. public class ACaseTest {  
    12.   
    13.     ACase a =null;  
    14.       
    15.     @Before  
    16.     public void setUp() throws Exception {  
    17.         a = new ACase();  
    18.     }  
    19.   
    20.     @Test  
    21.     public void testNoParamEchoRequest() throws Exception {  
    22.         //测试没有参数的echoRequest()方法  
    23.         Method testNoParamMethod = a.getClass().getDeclaredMethod("echoRequest", null);   
    24.         //Method对象继承自java.lang.reflect.AccessibleObject,父类方法setAccessible可调  
    25.         //将此对象的 accessible 标志设置为指示的布尔值。值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。                                            
    26.         //要访问私有方法必须将accessible设置为true,否则抛java.lang.IllegalAccessException  
    27.         testNoParamMethod.setAccessible(true);   
    28.         //调用  
    29.         Object result = testNoParamMethod.invoke(a, null);  
    30.         System.out.println(result);  
    31.         Assert.assertNotNull(result);  
    32.           
    33.     }  
    34.       
    35.     @Test  
    36.     public void testParamEchoRequest() throws Exception {  
    37.         //测试带有参数的echoRequest(String request)方法  
    38.         Method testNoParamMethod = a.getClass().getDeclaredMethod("echoRequest",String.class);   
    39.         testNoParamMethod.setAccessible(true);   
    40.         //调用  
    41.         Object result = testNoParamMethod.invoke(a, "this is a test information");  
    42.         System.out.println(result);  
    43.         Assert.assertNotNull(result);  
    44.           
    45.     }  
    46.   
    47. }  

    https://blog.csdn.net/iameyama/article/details/50411212

    IDEA配置junit:

    http://www.360doc.com/content/17/0701/11/10072361_667938060.shtml

  • 相关阅读:
    Spring IOC(二)beanName 别名管理
    Spring IOC(六)依赖查找
    Spring IOC(五)依赖注入
    Spring IOC(七)类型推断
    Spring 循环引用(二)源码分析
    Spring 循环引用(一)一个循环依赖引发的 BUG
    Spring IOC(四)FactoryBean
    Spring 中的类加载机制
    Spring IOC(三)单例 bean 的注册管理
    Spring Environment(三)生命周期
  • 原文地址:https://www.cnblogs.com/twoheads/p/9543926.html
Copyright © 2011-2022 走看看