我如何改善反射的鲁棒性



我正在修改别人的开源库,以更好地适合我的需求,在此过程中,我意识到库本身相当脆弱。它没有测试,并且其代码的关键部分使用反射以绕过Android SDK中的权限级别。我认识到这是不好的做法,但是在这种情况下,我同意原始作者的观点,即SDK的某些部分被标记为私人或私人包的私人或公开。

例如,一个类除扩展标准的Android UI类外,什么都不做,但是为其一种视图的颜色提供了一个getter和setter,否则无法更改。

显然,依赖于其他人的代码库中的私有代码的代码本质上脆弱,但我认为我最不可能的是为其编写一些测试。但是,我唯一能想到的是实例化,更改颜色,看看它是否崩溃。假设没有访问私人成员的我无法做我想做的事情,我该怎么做才能使这更可口?

还没有更多的想法。我会添加一些单元测试,以行使您想要的特定反射代码,看看它是否崩溃/保持正确的行为。您依靠3-RD Party库的Hiddne Impl详细信息 - 正如您所说,这是灾难的教科书定义。因此,除了提出尽快删除此代码的迁移计划之外,我只需编写涵盖所有受影响的代码的单元测试(尽管实际上您的大多数应用程序都应该已经由单位测试涵盖;并且用于您无法单位测试的集成测试)

最新更新