我的方法存在内部依赖性:
String myString ... //do some stuff to string determined my method parameters
Process p = Runtime.getRuntime().exec(myString);
myString 是本地方法范围,并且不会返回 - 是否有办法通过单元测试来测试 myString 的外观?除了将其作为外部依赖项注入(inject)并创建字符串的模拟之外。
最佳答案
我会提取协作者中的 exec 部分,并模拟该协作者:
public interface ProgramLauncher {
Process exec(String command);
}
...
@Test
public void test() {
ProgramLauncher mockLauncher = mock(ProgramLauncher.class);
YourClass underTest = new YourClass(mockLauncher);
underTest.callMethod();
verify(mockLauncher).exec("the expected command");
}
关于java单元测试本地范围的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18011967/