2

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

4

4 回答 4

4

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

于 2013-05-21T09:44:50.163 回答
1

这是我将如何处理这个...

  • 在测试中创建一个方法,该方法返回调用的类protected的实例abstractgetInstance()
  • 使用上述链接中建议的解决方案来实现这一点(类的测试实现、模拟或一些默认实例)
  • getInstance()从您的setup/方法调用该方法@Before以填充将用于测试的字段

然后,这种方法将允许您在测试扩展抽象类的类时重用这组测试。为此,您可以让具体类的测试扩展抽象类的测试并覆盖该getInstance方法以返回具体类的实例。

于 2013-05-21T10:57:00.023 回答
0

你可以像 Kevin Bowersox 所说的那样做,或者你也可以使用一些模拟框架。

例如:使用 Mockito 测试抽象类

于 2013-05-21T09:49:58.350 回答
0

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

于 2013-05-21T09:52:12.790 回答