`

[UnitTest] Unit Test 测试非public变量/方法[转载]

阅读更多

From: http://stackoverflow.com/questions/34571/how-to-test-a-class-that-has-private-methods-fields-or-inner-classes

 

If you have somewhat of a legacy application, and you're not allowed to change the visibility of your methods, the best way to test private methods is to use reflection.

Internally we're using helpers to get/set private and private static variables as well as invoke private and private static methods. The following patterns will let you do pretty much anything related to the private methods and fields. Of course you can't change private static finalvariables through reflection.

 

Method:

Method method = targetClass.getDeclaredMethod(methodName, argClasses);
method.setAccessible(true);
return method.invoke(targetObject, argObjects);

 

Field:

Field field = targetClass.getDeclaredField(fieldName);
field.setAccessible(true);
field.set(object, value);

 

Notes:
targetClass.getDeclaredMethod(methodName, argClasses) lets you look into private methods. The same thing applies for getDeclaredField.
* The setAccessible(true) is required to play around with privates.

分享到:
评论

相关推荐

    TestUnit #5.0_unittest#5_

    在`TestUnit #5.0.cpp`中,我们可以预期找到使用unittest框架定义的测试类和测试方法。测试类通常继承自`unittest::.TestCase`,并包含一系列`TEST`宏定义的测试用例。例如: ```cpp #include <unittest/unittest.h...

    python unittest自动化接口测试框架

    测试用例类通常会继承unittest.TestCase,并定义了多个测试方法,每个方法对应接口的一个具体测试场景。测试数据可能是json格式或者其他格式,用于模拟不同的请求参数和期望响应。配置文件可能包含了接口的基础URL、...

    unittest框架做单元测试的简单实现

    在这里,`test_addition`方法测试了一个名为`my_function`的函数,期望其返回值为3。 3. **设置和清理**:如果需要在每个测试之前或之后执行某些操作(例如,初始化或清理资源),可以重写`setUp`和`tearDown`方法...

    使用Python的unittest框架来编写测试用例

    在Python中,unittest框架的核心概念包括测试套件(Test Suite)、测试案例(Test Case)和测试加载器(Test Loader)。首先,测试案例是测试的基本单位,通常是一个包含了多个断言方法的类。unittest.TestCase类...

    单元测试Demo(public与非public)

    本教程的焦点在于如何对`public`和`非public`类及方法进行单元测试,特别是针对`C#`语言在`Visual Studio 2015`中的实现。 首先,我们理解一下单元测试的基本概念。单元测试是一种编程实践,通过编写小型的独立测试...

    Unit Test Sample Code

    在C#中,`MSTest`框架通过`[TestClass]`和`[TestMethod]`注解来定义测试类和测试方法。下面是一个简单的例子: ```csharp [TestClass] public class CalculatorTests { [TestMethod] public void ...

    java unit test单元测试示例程序

    对于不可控的第三方接口、第三方服务以及不确定性的代码如何进行单元测试用例的编写提供思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一...

    python+selenium+unittest自动化测试demo

    Python+Selenium+Unittest自动化测试框架是一个强大的组合,用于高效地进行Web应用的自动化测试。在本示例中,我们看到一个基于这三个组件构建的自动化测试项目,它提供了丰富的功能,如测试用例管理、批量执行、...

    Android unitTest 按键单元测试项目

    测试类通常放在`src/test/java`目录下,遵循`<package_name>.test.<original_class_name>Test`的命名规则。 三、按键单元测试 在Android应用中,按钮点击事件通常是用户交互的关键部分。测试按钮点击事件主要涉及...

    python,三角形测试,黑盒测试,白盒测试,unittest,HTMLTestRunner生成测试报告,.rar

    unittest提供了断言方法、测试套件、测试加载器等功能,方便组织和执行测试。在给定的文件列表中,"tested.py"可能包含了使用unittest编写的测试用例。 HTMLTestRunner是unittest的一个扩展,它能够生成详细的HTML...

    Python-BeautifulReport适用于unittest自动化测试的可视化报告

    Python-BeautifulReport是一款专为unittest自动化测试设计的可视化报告生成工具。它旨在提供一种美观、易读的方式来展示测试结果,使测试人员和开发者能够快速理解测试执行的状态,从而提高测试效率和代码质量。 在...

    python3+selenium3单元测试框架(unittest)使用介绍

    在这个示例中,创建了两个TestCase子类,每个测试类都定义了setUp()方法来初始化测试环境,并分别定义了runTest()和test_runTest2()测试方法。runTest()方法中的断言检查了一个随机选择的元素是否在0到9的范围内,而...

    unittest 测试套 框架

    6. **装饰器**:除了使用`test_`前缀的方法外,unittest还支持使用`@unittest.skip`、`@unittest.skipIf`、`@unittest.expectedFailure`等装饰器,用于跳过特定的测试、条件性地跳过测试或标记预期失败的测试。...

    Visual C++ Unit Test Assistant - 单元测试助手 [v0.908]

    《Visual C++ Unit Test Assistant:助力C语言程序的单元测试》 Visual C++ Unit Test Assistant 是一款专为C语言程序设计的辅助工具,它在Visual C++开发环境中提供了全面的单元测试支持。这款小工具旨在简化开发...

    python_plugin_unittest.rar_The Test_unittest python

    "python_plugin_unittest.rar_The Test_unittest python"这个标题暗示我们正在处理一个与Python插件相关的单元测试项目,其中可能包含了一个或多个插件的测试用例。描述中提到的“verifies that all the expected ...

    自动化测试框架+unittest(1)

    自动化测试框架+unittest(1) 自动化测试框架是软件开发中的一种重要组件,它可以帮助开发者自动执行测试用例,提高测试效率和测试覆盖率。unittest是Python中的一种自动化测试框架,广泛应用于单元测试和自动化...

    Python Unit Test Automation:for Python Developers and Testers

    Quickly learn how to automate unit testing of Python 3 code with Python 3 automation libraries, such as doctest, unittest, nose, nose2, and pytest. This book explores the important concepts in ...

    TestUnit #5444.4.0_unittest#4_

    TestUnit #5444.4.0_unittest#4_ 是一个测试单元,它代表了一个软件开发项目中的特定测试部分,通常用于验证代码的某个功能或模块是否按预期工作。在软件工程中,单元测试是确保代码质量的重要步骤,通过编写针对...

Global site tag (gtag.js) - Google Analytics