2013-08-02 46 views
0

有我的方法的内部依赖性:Java单元测试本地范围的串

String myString ... //do some stuff to string determined my method parameters 
Process p = Runtime.getRuntime().exec(myString); 

myString的是本地方法的范围,而不是回来了 - 反正是有测试的外观的myString通过单元测试一样?除了将其注入外部依赖并创建字符串的模拟。

回答

2

我会在一个合作者提取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"); 
} 
1

我宁可解压

//做一些东西串确定我的方法参数

分开的方法,只是测试这种方法。