gpt4 book ai didi

java - 如何将方法注入(inject)到java测试类中?

转载 作者:行者123 更新时间:2023-12-01 15:26:14 25 4
gpt4 key购买 nike

如何将方法(使用反射)注入(inject)父类(super class)而不扩展测试类?我需要替换 getExternalData() 来测试 someMethod() 内部的逻辑。我无法更改测试的类 - 因为我正在考虑注入(inject)方法。

我有流畅的类(class):

public class B extends A{
public String someMethod(){
String someString = super.getExternalData();
//logic to be tested - manipulating on someString
return someString;
}
}

public class A{
public String getExternalData(){
//some Logic that generates "externalData" string
return externalData;
}
}

并测试:

public class CesTest{
@Test
public void someMethodTest()(
B instance = new B();
//...
//...
assertEquals("expectedData", instance.someMethod());
}
}

最佳答案

简单的答案是,你不能不做一些非常奇怪的事情,这会导致你不测试被测类,而是测试被测类的一些奇怪的模拟版本。您需要执行任何必要的设置才能让 getExternalData 返回适当的值。话虽这么说,类 A 应该这样编写,以便可以注入(inject) mock 以提供此外部数据,而无需访问外部资源.

关于java - 如何将方法注入(inject)到java测试类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com