测试实现java.lang.Serializable的类,以确保任何更改都是向后兼容的

时间:2015-08-12 15:31:49

标签: java unit-testing testing serialization backwards-compatibility

我尝试使用OpenHFT/Chronicle-MapMapDB来保留一个简单的字符串 - > Foo数据库。

Foo可能会随着时间的推移而发展,我想知道人们采用了哪些测试策略来确保任何旧版本的Foo持续存在都将是可加载的。

我正在考虑为每个特定的类启动serialVersionUID为1,将每个特定的序列化版本存储在我签入的文件中并进行测试,这样可以确保我可以读回所有这些文件并且值是我所期望的。

虽然看起来有些小手册。

由于

1 个答案:

答案 0 :(得分:1)

您可以自动创建序列化文件的过程

  1. 将每个版本的Foo.java存储在src/test/resources
  2. 测试用例可以在运行时使用JavaCompiler
  3. .java编译为.class
  4. 使用一次性ClassLoader加载每个.class版本
  5. 实例化/填充(可能使用反射)/序列化实例
  6. 一旦到位,唯一的维护就是

    1. 每个版本的源文件
    2. 人口策略