如何测试抽象类?我研究了它,发现需要创建一个模拟对象,但是如何创建一个模拟对象呢?我不知道,有人可以帮忙吗?例如,这是我的抽象类:

public abstract class Aging {
    private int age;

    public Aging(int age) {
        setAge(age);
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}


我试图使用以下代码来测试构造函数:

@Test
public void testAgingConstructor() {
    Aging a = new Aging(18);
    a.setAge(19);
    Aging b = new Aging(19);
    assertEquals(b, a);
}


我收到一条错误消息“老化是抽象的;无法实例化”。我该怎么办?

最佳答案

为了实例化您的抽象类,您需要创建一个具体的子类。

@Test
public void testAgingConstructor() {
    class AgingSubclass extends Aging {
        public AgingSubclass(int age) { super(age); }
    }
    Aging a = new AgingSubclass(18);
    a.setAge(19);
    Aging b = new AgingSubclass(19);
    assertEquals(b, a);
}

10-06 09:38