Android单元测试问题解决
2024-10-13 13:18:59
1.'java.lang.RuntimeException: Method isEmpty in android.text.TextUtils not mocked'报错
https://www.jianshu.com/p/f5d197a4d83a
2.利用反射测试native方法
//测试私有方法
@Test
public void isLoginResultValidTest() throws Exception {
LoginResultModel result = new LoginResultModel();
result.uid = 722264821;
result.session = " ";
result.first_login = false;
result.new_add = false;
result.phone = "13269964826";
result.secret = "";
result.is_new_device = false;
result.isVisitor = false;
System.out.println(result.toString());
//获取目标类的class对象
// Class<LoginServiceImpl> clazz = LoginServiceImpl.class;
// Method declaredMethod = clazz.getDeclaredMethod("isLoginResultValid", boolean.class);
// declaredMethod.setAccessible(true);
// Object invoke = declaredMethod.invoke(loginServiceImpl, result);
// declaredMethod.setAccessible(false);
Class<LoginServiceImpl> class1 = LoginServiceImpl.class;
//获取目标类的实例
Object instance = class1.newInstance();
//getDeclaredMethod() 可获取 公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
//getMethod() 只可获取公共的方法
Method method = class1.getDeclaredMethod("isLoginResultValid",LoginResultModel.class);
//值为true时 反射的对象在使用时 让一切已有的访问权限取消
method.setAccessible(true);
//Object invoke = method.invoke(instance,new LoginResultModel[]{result});
Object invoke = method.invoke(instance,result);
System.out.println(invoke);
Assert.assertEquals(true, invoke);
}
最新文章
- Spring之ResourceLoader加载资源
- ubuntu /etc/network/interfaces 中配置虚拟链路
- inventor应用程序错误---解决方法
- ural 1155. Troubleduons
- MySQL Cluster在线备份和恢复
- [转]init.d解析
- Oracle恢复已删除数据
- c#执行并行任务之Parallel与TaskFactory
- 一个TextView使用不同的颜色
- 【DeepLearning】深入理解dropout正则化
- Operation not permitted
- 学习 Spring (八) 注解之 Bean 的定义及作用域
- SQL Server2012远程访问第二个实列
- JS通过键盘点击事件实现div移动
- eclipse debug模式
- 访问 iframe 内部控件方法
- react native中如何往服务器上传网络图片
- ActiveX IE保护模式下的低权限操作路径及Windows操作系统特殊路径
- VirtualBox安装增强功能
- apply方法和call方法的详解2
热门文章
- 在Spring Bean实例过程中,如何使用反射和递归处理的Bean属性填充?
- [leetcode] (周赛)869. 重新排序得到 2 的幂
- springboot中引入zookeeper,生成 配置类
- HiCar SDK概述
- GPU编程和流式多处理器(七)
- 孟老板 BaseAdapter封装 (二) Healer,footer
- 菜鸟刷题路:剑指 Offer 05. 替换空格
- UI自动化在RobotFramework中采用的分层设计
- Winform中只运行运行一个实例的方法
- ANDROID开发 Fatal signal 11(SIGSEGV) at 0x问题解决方案