我是Test的软件工程师,我正在尝试编写可以替换生产方法的代码,以便测试可以执行。基本上,我不想修改生产代码的可测试性。
这是一个简单的场景:
public class Foo {
public static void foo() {
printA();
}
public static void printA() {
System.out.println("A");
}
public static void printB() {
System.out.println("B");
}
}
public class Foobar {
public Foobar() {
}
public void test() {
Foo.foo();
}
public static void main(String[] args) {
//Try changing the method here
new Foobar().test();
}
}
正如您所看到的,当main执行时,它将打印“A”,因为它在静态方法foo()上调用方法printA。现在运行时,有没有一种方法可以注入或修改foo将调用printB而不是printA?
感谢您的帮助!