zoukankan      html  css  js  c++  java
  • JUnit3 私有方法的单元测试

     

    私有方法的单元测试

    测试类的私有方法时可以采取两种方式:

      1.修改方法的访问修饰符,将private修改为default或者public。(不推荐)。

      2.在测试类中使用反射调用目标类的私有方法。(推荐)。

    程序实例

      一个计算加法的方法,是私有方法,在测试类中通过反射调用该方法进行测试.

      PS:使用JUnit 3。

      被测试的类:

    package com.mengdd.junit;
    
    public class Calculator2
    {
        private int add(int a, int b)
        {
            return a + b;
        }
    
    }

      测试类:

    package com.mengdd.junit;
    
    import java.lang.reflect.Method;
    
    import junit.framework.Assert;
    import junit.framework.TestCase;
    
    public class CalculatorTest2 extends TestCase
    {
    
        public void testAdd()
        {
            Calculator2 calculator2 = new Calculator2();
            // 得到class对象
            Class<Calculator2> clazz = Calculator2.class;
    
            // 得到方法
            try
            {
                Method method = clazz.getDeclaredMethod("add", new Class[] {
                        int.class, int.class });// 这里也可以用:Integer.TYPE
    
                method.setAccessible(true);// 抑制访问修饰符,使得私有方法变为可以访问的
    
                Object result = method.invoke(calculator2, new Object[] { 2, 3 });
    
                Assert.assertEquals(5, result);
    
            }
            catch (Exception e)
            {
                e.printStackTrace();
    
                Assert.fail();
            }
        }
    }

    参考资料

      圣思园张龙老师视频。

  • 相关阅读:
    mysql乐观锁总结和实践
    linux使用文本编辑器vi常用命令
    python高级特性-sorted()
    python高级特性-filter
    Python函数式编程-map/reduce
    centos 7.3 快速安装ceph
    python高级特性-迭代器
    python高级特性-生成器
    python高级特性-列表生成
    python高级特性-迭代
  • 原文地址:https://www.cnblogs.com/mengdd/p/3006191.html
Copyright © 2011-2022 走看看