java单元测试本地范围的字符串

标签 java spring-mvc junit

我的方法存在内部依赖性:

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/

相关文章:

java - 运行外部 JUnit Jar 的 Spring 导致 java.lang.Exception : No runnable methods

java - Eclipse IDE 中未读取 SystemPropertyVariables

java - 没有连接表的单向一对多关系

通过引用链: java. util.HashMap出现java.lang.UnsupportedOperationException

java - 遇到这个二次方程类JAVA的问题

java - Jakson 无法从 START_OBJECT token 中反序列化 java.util.ArrayList 的实例

java - Spring session 管理

java - Spring Boot 测试 - 创建名为 SpringBootRepositoryRestMvcConfiguration 的 bean 时出错

java - 创建预实现的java类的对象比创建自定义对象快得多?

java - Maven中Jetty插件的企业用途是什么?