首先,我要提到我看过Unit testing of encrypt/decrypt和Unit testing encryption and decryption in Java。
我想通过验证其许可证来保护图书馆。许可证包含最大用户和到期时间等信息。
我遇到的问题是:
我不想测试JCE,但我想测试我的代码:
我应该创建一个代码的克隆,有一些更软的访问限制并测试吗?然后问题是我没有测试在客户端系统上运行的真实代码。
有没有更好的解决方案呢?
答案 0 :(得分:0)
根据您的描述,我没有看到单独测试它们的问题。
- 加密器和解密器有两个不同的代码库。
如果您单独测试它们不是问题。
- 在加密器
中使用随机盐
您可以注入一个模拟随机生成器,它将产生相同的结果。
- 为了它的目的,解密器是一个最终类,它的所有方法都是私有的
可以看到许多测试私有方法的方法here
- 从加密许可证中提取盐
您需要的只是一个加密的许可证,您知道它的盐。
- 解密加密许可证
同样,您可以使用您知道其解密内容的许可证。
- 将输出反序列化为包含许可证数据的某些数据结构
不相关,是对反序列化代码的单独测试。