当前位置: 首页 > 面试题库 >

为接口的多种实现编写单个单元测试

松铭
2023-03-14
问题内容

我有一个接口,List其实现包括单链接列表,双精度,循环等。我为单精度编写的单元测试应该对大多数双精度以及环形以及接口的任何其他新实现都有利。因此,JUnit不会为每个实现重复执行单元测试,而是提供一些内置的功能,让我拥有一个JUnit测试并针对不同的实现运行它吗?

使用JUnit参数化测试,我可以提供不同的实现,例如单,双,循环等,但是对于每个实现,都使用相同的对象执行类中的所有测试。


问题答案:

使用JUnit 4.0+,您可以使用参数化测试:

  • @RunWith(value = Parameterized.class)向您的测试夹具添加注释
  • 创建一个public static方法返回html" target="_blank">Collection,带有注释它@Parameters,并把SinglyLinkedList.classDoublyLinkedList.classCircularList.class等进入该集合
  • 构造函数添加到您的测试夹具是需要Classpublic MyListTest(Class cl),并存储Class在一个实例变量listClass
  • setUp方法或中@Before,使用List testList = (List)listClass.newInstance();

完成上述设置后,参数化运行器将为MyListTest您在@Parameters方法中提供的每个子类创建测试夹具的新实例,从而使您可以为需要测试的每个子类行使相同的测试逻辑。



 类似资料:
  • 我有一个接口,它的实现包括单链表、Doubly、Circular等。我为Singly编写的单元测试应该对该接口的大部分Doubly以及Circular和任何其他新实现都有好处。因此,JUnit是否提供了一些内置的东西,让我有一个JUnit测试,并针对不同的实现运行它,而不是对每个实现重复单元测试? 使用JUnit参数化测试,我可以提供不同的实现,如Singly、doubly、circular等,但

  • 我不会告诉你有关后台任务的单元测试的任何内容,因为Hangfire没有添加任何特定方法 (除了 IJobCancellationToken 接口参数)去改变任务。使用您最喜爱的工具,并照常写入单元测试。本节介绍如何测试创建的后台任务。 所有的代码示例都使用静态 BackgroundJob 类来告诉你如何做这个或那些东西,只是出于简单演示的目的。但是当你想测试调用的静态方法时,会变得很痛苦。 不用担

  • 我们的spring webapp实现了很多autowired接口。接口实现中的一些方法做了很多工作。方法本身有一个公共入口点,许多逻辑被抽象成许多私有方法。因此,单元和集成测试相当庞大,因为有很多要测试。在编写集成测试方面,我考虑的是一种模式,即让测试自动与实现而不是接口相关,将这些私有方法的作用域更改为公共的,但不将它们公开给拥有的接口。 这将允许对这些子例程进行单元测试,同时保持契约中没有很多

  • 创建单实现者接口仅仅是为了测试反模式吗?有更好的选择吗?

  • 试图弄清楚我是否可以使用spring kafka和spring kafka测试为@KafkaListener编写单元测试。 我的听众课。 我的测试类别: 我的测试配置类: 有什么简单的方法可以做到这一点吗? 或者我应该以其他方式测试@KafkaListener?在单元测试中,如何确保在Kafka中收到新消息时调用@KafkaListener。