gpt4 book ai didi

java - 如何模拟对从 protected 资源继承的接口(interface)的调用

转载 作者:行者123 更新时间:2023-11-30 02:27:34 25 4
gpt4 key购买 nike

我有以下代码结构

pkg a
public class TypeA {

@Resource
protected Resource resource

//other members and methods


}

pkg a
public class TypeB extends TypeA {

public void doSomething() {
resource.methodCall();
}

}

我正在尝试使用 powermockito、mockito 方法 doSomething() 为 TypeB 类编写单元测试。我需要模拟对resource.methodCall()的调用,但不知道如何去做。目前无法更改 TypeA 或 TypeB 的代码

最佳答案

这里有三个选项:

  • 自然地,您会寻找某种方法来注入(inject)模拟资源对象(例如,Mockito 有一个 @InjectMocks 注释,它使用反射来用模拟对象填充字段)。或者您创建一个辅助构造函数来将该模拟放到其位置
  • 您可以研究一下 Mockito spy 概念,它允许部分模拟
  • 您重新设计您的设计,使其更易于测试(例如,通过将继承与出于充分理由而受到青睐的组合交换)

关于java - 如何模拟对从 protected 资源继承的接口(interface)的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45244721/

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