老网站文章突然无收录,高校后勤网站建设,杭州网站开发公司,设计师效果图网站Private测试 前言一、间接调用二、Java反射机制调用 前言
在单元测试中#xff0c;由于私有方法#xff08;Private Method#xff09;无法直接被调用#xff0c;因此对私有方法进行测试成为一项难题。一个可行的方法是#xff1a;在测试时将私有方法改变为公有方法… Private测试 前言一、间接调用二、Java反射机制调用 前言
在单元测试中由于私有方法Private Method无法直接被调用因此对私有方法进行测试成为一项难题。一个可行的方法是在测试时将私有方法改变为公有方法Public Method在测试完成后再将其修改为私有方法。然而该方法操作过程比较复杂不利于自动化测试的开展。因此针对私有方法的测试多采用间接调用或利用反射机制进行 以图中三角型程序Triangle为例说明JUnit对私有方法的测试方法。在Triangle中diffOfBorders方法用于判断两条边的长度差异为程序判断给定三条边是否满足“两条边之差是否小于第三条边”提供服。因此diffOfBorders方法是一个私有方法。若直接调用diffOfBorders进行测试就会报错not visible错误那么我们该如何解决呢 一、间接调用 如前所叙diffOfBorders为判断三条边是否满足三角形条件服务被isTriangle方法调用。因此可通过测试isTriangle来间接测试diffOfBorders。下图给出了一个间接调用示例。对isTriangle进行调用时分别以4,3, 3,4,4,4作为输入来调用diffOfBorders,基本满足了diffOfBorders各种逻辑覆盖和路径覆盖需求 二、Java反射机制调用 除间接调用外还可利用Java反射机制实现对私有方法的单元测试。通过反射研发人员可以在程序运行时获取加载类中的所有访问属性包括public ,private,protected等的成员方法和成员变量下图给出一个应用Java反射机制的私有方法测试用例testdiffOfBorders。通过方法名和参数信息获取testdiffOf- Borders方法后可将其设置为可访问权限。此时便可通过method提供的invoke方法调用testdiffOfBo- rders的功能实现对testdiffOfBorders的单元测试