zoukankan      html  css  js  c++  java
  • 如何测试私有成员方法和变量

    先考虑它是否可以单独到一个类,再考虑使用反射

    class Stranger {

        public Stranger(final String name) {
            this.name = name;
        }

        private final String greet(final String hello) {
            return hello + name;
        }

        private String name = "";
    }

    public class PrivateTest {

        public static void main(String args[]) throws Exception {

            Stranger testObj = new Stranger("Walter");
            Class testClass = testObj.getClass();
            // get private property
            Field field = testClass.getDeclaredField("name");
            // Make the field accessible
            field.setAccessible(true);
            
            // get private method
            Class[] typeParams = new Class[] { String.class };
            Method method = testClass.getDeclaredMethod("greet", typeParams);
            // Make the method accessible
            method.setAccessible(true);
            // execute the method
            Object objParams[] = { "hello, " };
            String greet = (String)method.invoke(testObj, objParams);
            
            System.out.println(greet);
        }
    }

  • 相关阅读:
    第4周课前测试考试题
    第3周课前测试考试题
    200行自定义异步非阻塞Web框架
    Web框架之Tornado
    redis总结
    Django之ModelForm组件
    Rabbitmq队列
    Git分布式版本控制系统
    Django REST framework
    python之路1
  • 原文地址:https://www.cnblogs.com/sunwei2012/p/1906217.html
Copyright © 2011-2022 走看看