我正在修改其他人的开源库,以更好地满足我的需要,在此过程中,我意识到库本身是相当脆弱的。它没有测试,代码的关键部分使用反射来绕过Android中的权限级别。我承认这是一种错误的做法,但我同意原作者的观点,即SDK中一些标记为私有或包私有的部分应该受到保护或公开。
例如,一个类除了扩展一个标准的Android类之外什么也不做,而是为其视图的颜色提供一个getter和setter,否则无法更改。
显然,依赖于其他人的代码库中的私有代码的代码在本质上是脆弱的,但我认为至少我可以为它编写一些测试。但是我唯一能想到的就是实例化它,改变颜色,看看它是否崩溃。假设在不访问私人成员的情况下无法做我想做的事情,我能做些什么来使这个更令人愉快呢?
发布于 2016-06-23 03:07:56
没有比这更重要的事了。我会添加一些单元测试,以执行您想要的特定反射代码,并查看它是否崩溃/保持正确的行为。你所依赖的是故意隐藏的第三党图书馆的细节--正如你所说的,在某个时候,这是灾难的教科书定义。因此,除了尽快提出移除此代码的迁移计划之外,我只需编写涵盖所有受影响代码的单元测试(尽管实际上您的应用程序应该已经包含在单元测试中;对于不能进行单元测试的应用程序进行了集成测试)。
https://stackoverflow.com/questions/37981114
复制相似问题