为抽象java类制作JUnit测试用例?

为抽象java类制作JUnit测试用例?,java,testing,junit,abstract-class,subclass,Java,Testing,Junit,Abstract Class,Subclass,我必须为有几个抽象类和方法的应用程序开发JUnit测试用例。是否可以为抽象类创建JUnit测试用例而不被其他类扩展? 如果一个子类扩展了一个抽象类,那么测试该子类就足够了吗?如何为抽象类的非抽象方法创建测试用例 由于无法创建抽象类的实例,因此必须使用派生类对其进行测试。您可以创建一个非常简单的类来扩展抽象类以进行测试。测试时,请确保使用子类测试所有需要在抽象类中测试的方法。您可以按照Kevin Bowersox所说的做,也可以使用一些模拟框架 例如:在抽象方法中使用匿名类和您想要的任何实现。下面

我必须为有几个抽象类和方法的应用程序开发JUnit测试用例。是否可以为抽象类创建JUnit测试用例而不被其他类扩展?
如果一个子类扩展了一个抽象类,那么测试该子类就足够了吗?如何为抽象类的非抽象方法创建测试用例

由于无法创建抽象类的实例,因此必须使用派生类对其进行测试。您可以创建一个非常简单的类来扩展抽象类以进行测试。测试时,请确保使用子类测试所有需要在抽象类中测试的方法。

您可以按照Kevin Bowersox所说的做,也可以使用一些模拟框架


例如:

在抽象方法中使用匿名类和您想要的任何实现。

下面是我将如何处理这个问题的

  • 在测试中创建一个
    protected
    方法,该方法返回名为
    getInstance()
  • 使用上述链接中建议的解决方案(测试类、模拟或某些默认实例的实现)实现此功能
  • 设置
    /
    @Before
    方法调用
    getInstance()
    方法来填充将用于测试的字段

然后,这种方法将允许您在测试扩展抽象类的类时重用这组测试。通过让具体类的测试扩展抽象类的测试,并重写
getInstance
方法以返回具体类的实例来实现这一点。

是否要为抽象类的非抽象方法创建测试用例?请看这个问题,我希望它能帮助您