Testing 测试私有方法,需要澄清

Testing 测试私有方法,需要澄清,testing,Testing,在我的src中,存在一个包含方法的类 public static boolean doExtensionsMatch(String s, String t) { 它没有什么错,只是没有必要公开。它在声明它的类中使用 它是public但是,因为不久前,我觉得这个方法需要直接测试,因此,private可见性对我不起作用 在这一点上: 我不想放弃那些测试。但是,如果我将方法设置为私有,测试将变得不可用 我希望测试保留在它当前的src test文件夹中,从而为源代码和测试维护单独的位置 那么,你告

在我的
src
中,存在一个包含方法的类

public static boolean doExtensionsMatch(String s, String t) {
它没有什么错,只是没有必要公开。它在声明它的类中使用

它是
public
但是,因为不久前,我觉得这个方法需要直接测试,因此,
private
可见性对我不起作用

在这一点上:

  • 我不想放弃那些测试。但是,如果我将方法
    设置为私有
    ,测试将变得不可用
  • 我希望测试保留在它当前的
    src test
    文件夹中,从而为源代码和测试维护单独的位置
那么,你告诉我,我该怎么办


我是否应该将方法更改为private并删除测试?

我建议使用分部类。如果您的测试类是要测试的类的部分类,那么它们将可以访问所有的方法和变量,无论它们是否是公共的。

您测试接口,以证明该类的行为是正确的

因此,只要私有方法不可访问,就不需要对其进行测试。更重要的是,你不应该在意界面是如何工作的,你应该只关注结果


你测试的是行为,而不是实现。

你所说的分部类是什么意思?@JAM:他的意思是,尽管我不同意把这一页删掉是个好主意,但我认为这将有助于澄清:我认为,只要你把测试放在单独的程序集中,而不是编译成发行版本,就可以了。