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

具有许多私有方法的Java测试类

壤驷坚
2023-03-14
问题内容

我有一堂课,负责将合同从CSV导入数据库。

该类本身只有一个开始导入的公共方法,而其他方法都是私有的(因为只有该类本身将使用,并且它们保留逻辑)。

我开始使用Spock对该类进行测试,并且有许多私有方法,该如何测试?

我应该将它们公开进行测试吗?测试仅主要方法,公开一种?

什么是最好的?


问题答案:

从理论上讲,您的私有方法最终会被一种公共方法所使用,否则根本就不会使用它们。因此,通常您将测试设置为在必要的上下文中调用公共方法,以使其到达您的私有方法。

单元测试主要是测试编译单元(即类)。您可以直接对测试方法进行单元化,但是然后必须将它们公开,这不利于拥有一个干净的API。

因此,请充分测试您的公共方法以使用所有私有方法。私有方法是该类的内部机制,不需要直接进行测试。



 类似资料:
  • 公共方法getA()的测试按预期工作,但私有方法getB()的测试不返回模拟值“b”,而是返回与方法getB()的实际返回值相对应的“b”。必须如何调整对getB()的测试,以便返回模拟值“b”?

  • 问题内容: 如何对具有内部私有方法,字段或嵌套类的类进行单元测试(使用xUnit)?还是通过内部链接(static在C / C ++中)或在私有(匿名)名称空间中使其私有化的函数? 仅仅为了能够运行测试而更改方法或函数的访问修饰符似乎很糟糕。 问题答案: 更新: 大约十年后,测试私有方法或任何无法访问的成员的最佳方法可能是来自Manifold框架。 这样,您的代码将保持类型安全和可读性。没有设计折

  • 我正在为我的一个应用程序编写单元测试,作为一个很好的实践,我试图使我的类中的所有方法尽可能私有,所以我最终可能会使用大部分私有方法的类,很少使用公共方法,有时还会调用一些静态方法(我的其他类或一些文本,等等) 我想知道如何测试我试图只依赖Mockito和JUnit的所有类,因为Robolectric和Powermockito似乎扩展了单元测试中应该做什么的边界。我应该忽略所有私有和静态方法,以及偶

  • 我有一个类,它有一个公共方法,它调用另一个私有方法。 通过调用公共方法 并将 设置为 来进行测试。 将更改为package-private并在测试中直接调用它。 然而,我不确定哪种方法更好。

  • 有没有任何变通办法来直接测试那些方法而不公开它们?

  • 我有一个Angular 11项目,我不知道如何测试私有方法。 下面是一个代码示例: 有什么想法吗?