gpt4 book ai didi

java - 模拟其属性在测试类构造函数中使用的依赖项

转载 作者:行者123 更新时间:2023-12-01 19:05:18 25 4
gpt4 key购买 nike

我想测试 Helper 类,但在该类的构造函数中,它包含一个依赖项,调用其属性来填充属性。

Mockito 怎么可能做到这一点?如果我监视 Dependency 类,它会起作用,但我不认为 spy 应该这样使用。

class Dependency {
private ArrayList<String> property;
...
}

class Helper {
private String a1;
private String a2;

public Helper(Dependency dependency) {
a1 = dependency.property.get(1)
a2 = dependency.property.get(2)
}

public int testedMethod() {
...
}
}

class HelperTest {
@Mock
public Dependency dependency;

@InjectMocks
public Helper helper;

public void test() {
...
}
}

最佳答案

你能重构吗?

在这种情况下,要么

  • 使 Dependency 成为一个接口(interface)并添加适当的方法来获取 String 项,或者
  • 让 Helper 不依赖于 Dependency,而是直接依赖于 String 项

诉诸“ spy ”是一种代码味道,应该尽早解决。

关于java - 模拟其属性在测试类构造函数中使用的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570541/

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