我正在添加单元测试以覆盖旧版Java项目,
我知道如何进行单元测试并涵盖该课程,我通过添加单元测试栏来做到这一点。
public class Thing implements Serializable {
private static final long serialVersionUID = -1463850548670691860L;
private String id;
}
例如取消使用:
ThingTest类{
@Test
void testShouldNotChangeSerialVersionUID() throws NoSuchFieldException {
final Field serialVersionUID = Thing.class.getDeclaredField("serialVersionUID");
serialVersionUID.setAccessible(true);
assertEquals(-1463850548670691860L, getField(serialVersionUID, new Thing()));
}
}
但是sonar和jacoco显示serialVersionUID未覆盖。这是声音。
请您提出一个解决方案,通过覆盖此领域使声纳快乐。
是的,我知道,我不应该遵循该工具,而应该遵循惯例。
谢谢
serialVersionUID
不必是私有的。使它受包装保护,并在单元测试中直接访问。