Skip to content

Android 堆实例枚举测试 tests/commands/android/test_heap.py ​

这个测试文件验证 objection 的 Android 堆实例枚举命令 instances:无参数时打印用法提示且不发起 RPC;传入类名时调用设备端 android_heap_get_live_class_instances。

📋 模块概览 ​

项目值
文件路径tests/commands/android/test_heap.py
被测对象objection.commands.android.heap.instances
用例数2
框架unittest(mock.patch + capture)

🎯 测试意图 ​

  • 验证缺少类名参数时打印 Usage 提示并阻止 RPC 调用。
  • 验证传入类名(如 java.io.File)时触发 android_heap_get_live_class_instances RPC。

🧪 用例清单 ​

用例行号验证点
test_print_live_instances_validates_commandtests/commands/android/test_heap.py:10无参数打印 Usage 且不调用 RPC
test_print_live_instances_validates_commandtests/commands/android/test_heap.py:18传类名触发 RPC 调用

注意

两个用例同名(源码中即如此重复命名),实际是不同断言:前者验证用法提示,后者验证 RPC 触发。

⚙️ 测试手法 ​

两个用例都 @mock.patch(...get_api)(tests/commands/android/test_heap.py:9、:17)。第一个用 capture(instances, []) 捕获输出并断言 Usage 文本,同时断言 android_heap_get_live_class_instances 未被调用;第二个直接 instances(['java.io.File']) 并断言 RPC 被调用。

🔍 源码索引 ​

用例位置
test_print_live_instances_validates_command(用法)tests/commands/android/test_heap.py:10
test_print_live_instances_validates_command(RPC)tests/commands/android/test_heap.py:18

🔗 相关文档 ​

  • 对应被测模块文档:/reference/commands/android/heap(如存在)

基于 GPL-3.0-or-later 许可发布