为需要文件位置的方法编写单元测试

Write unit test for a method which need a file location

我有一个将文件位置作为参数的方法。

public void methodA(String fileLocation){
    
    // Do something
    
    methodB(fileLocation);

}

private void methodB(String fileLocation){

    readFile();

    // Do Something
    
}

我想为methodA()写一些单元测试。文件位置是 YAML 文件的位置,我需要为各种类型的 YAML 文件编写单元测试。由于 methodA 获取文件路径作为参数,因此我无法将 YAML 文件作为字符串传递。此外,由于 methofB 是私有的,我无法直接为 methodB.

编写单元测试
  1. 这里破解了什么软件工程师负责人?
  2. 如何重构此代码,因为我可以像上面那样编写单元测试。

一开始我的计划是更新 methodB,因为它将 YAML 字符串作为参数并使其成为 public。但是我不确定将完整的 YAML 字符串作为参数传递给方法是否是一个好习惯,因为对 methodB.

的调用很多

为什么要将 YAML 文件作为字符串传递?只需将测试文件上传到您的资源目录,并使用它们来测试您的逻辑。其次,对于方法 B,我个人会使用 PowerMock 的能力来执行私有方法,这里有一个简单的指南 - https://www.baeldung.com/powermock-private-method。一般来说,仅仅为了测试而改变方法的可见性是一种不好的做法,即如果没有必要,不要制作 methodB public。