【问题标题】:Testing classes implementing java.lang.Serializable to make sure any changes are backwards compaitible测试实现 java.lang.Serializable 的类以确保任何更改都向后兼容
【发布时间】:2015-08-12 15:31:48
【问题描述】:

我正在尝试使用 OpenHFT/Chronicle-MapMapDB 来持久化一个简单的 String -> Foo 数据库。

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

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

虽然看起来有点手动。

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    一旦到位,唯一的维护就是

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

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2011-07-25
      • 2022-11-11
      • 1970-01-01
      • 2011-10-28
      • 2016-12-29
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      相关资源
      最近更新 更多