当前位置: 首页 > 知识库问答 >
问题:

用于单元测试的单个实现者接口是反模式吗?

壤驷高洁
2023-03-14

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

共有1个答案

羊舌兴文
2023-03-14

只为测试而编写代码并不是错误的。这实际上是正常的,就像生产代码包含只用于调试和生产监控的特性一样。没有明确的理由应该禁止这一点。代码应该支持应用程序生命周期的所有方面。测试只是生命周期的另一部分。

从这个意义上说,您使用接口的方法是正确的。如果您让生产应用程序的其余部分也使用接口(而不是具体类,尽管只有一个),那么它在体系结构上是健全的。

我有点反对接口是什么(描述实现者可以做什么,而不是它是什么)

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

  • 问题内容: 我有一个接口,其实现包括单链接列表,双精度,循环等。我为单精度编写的单元测试应该对大多数双精度以及环形以及接口的任何其他新实现都有利。因此,JUnit不会为每个实现重复执行单元测试,而是提供一些内置的功能,让我拥有一个JUnit测试并针对不同的实现运行它吗? 使用JUnit参数化测试,我可以提供不同的实现,例如单,双,循环等,但是对于每个实现,都使用相同的对象执行类中的所有测试。 问题

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

  • 我的spark应用程序中有一个方法从MySQL数据库加载数据。该方法看起来如下所示。 该方法除了执行方法并从数据库加载数据外,其他什么都不做。我该如何测试这种方法呢?标准方法是创建对象的模拟,该对象是的实例。但是由于有一个私有构造函数,所以我无法使用Scalamock来模拟它。 这里的主要问题是,我的函数是一个纯粹的副作用函数(副作用是从关系数据库拉数据),如果我在嘲笑时遇到问题,我如何单元测试这

  • 问题内容: 我正在使用Swift 2和Xcode 7构建iOS 9应用程序。 将应用程序部署到手机时,我的应用程序运行良好,但是当我运行任何单元测试时,对于许多类,我都会收到以下错误消息: 有任何想法吗? 问题答案: 仅将测试类添加到您的测试目标,而没有一个iPhone应用程序类。然后,只需将您的应用名称导入为测试类顶部的模块,即可访问所有应用类。

  • 问题内容: 假设我有实现它的接口和实现类,并且我想为此编写单元测试。我应该测试什么接口或Impl? 这是一个例子: 因此,我有实现它的HelloInterface和HelloInterfaceImpl。什么是被测单元接口或Impl? 我认为应该是HelloInterface。请考虑以下JUnit测试草图: 主线实际上是我注释掉的那条线。 方法不是我的公共接口的一部分,所以我不想 意外地 调用它。如