java - 如何编写单元测试来检查复制构造函数是否与类属性同步?

标签 java unit-testing junit copy-constructor

最近我们的系统中有一个错误,是由于忘记在复制构造函数中分配新添加的类属性引起的。

例如:

public class MyClass {

    private Long companyId;
    private Long classId;
    private Double value;   <=  newly added

    public MyClass(MyClass myClass) {
        this.setCompanyId(myClass.getCompanyId());
        this.setClassId(myClass.getClassId());
        this.setValue(myClass.getValue());   <= we forget this line
    }

我想编写一个单元测试,以保证在添加新属性时捕获丢失的副本分配。我该如何处理?

最佳答案

我会通过反射(reflection)来做到这一点。

  • 新建一个 MyClass 的实例。 (一)
  • 通过反射,为每个字段赋值。这可以通过 getClass().getDeclaredFields() 来完成。
  • 新建一个MyClass 的空白实例。 (二)
  • 针对 B 在 A 上运行复制构造函数。
  • 通过反射判断A中的字段是否等于B。

关于java - 如何编写单元测试来检查复制构造函数是否与类属性同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856766/

相关文章:

Python单元测试多线程

android - Robolectric:actionBar.hide() 返回 Null

java - 如何为现有 Java 项目创建 ant 构建器文件 (build.xml)?

junit - 安卓 JUnit : Define a different Application subclass

java - iText - 读取使用未知随机所有者密码创建的 PDF

c# - 如何使用多个目标框架测试 .NET 库

c# - 在 mvc 2 中测试自定义 actionresult

java - NoDefFound 错误

java - POI Excel HSSF图片图像和尺寸

java - 对字符串数组进行计数和排序的最佳方法是什么