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



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

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字符串作为参数并将其公开。但我不确定将完整的YAML字符串作为参数传递给方法是否是一种好的做法,因为有大量对methodB的调用。

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

最新更新