gpt4 book ai didi

unit-testing - 如何对具有字段注入(inject)的类进行单元测试(使用 guice)

转载 作者:行者123 更新时间:2023-12-02 21:03:45 35 4
gpt4 key购买 nike

被测试的类看起来像这样:

public class SomeAdapter {

@Inject
HttpService httpService;

@Inject
Configuration configuration;

public SomeAdapter()
{
GuiceInjector.getInjector().injectMembers(this);
}

public String getBaseUrl()
{
return configuration.getProtocol()+ "://" + some.getServer() + ":" + configuration.getPort();
}
}

我已经尝试过mockito框架中的InjectMocks,但它似乎并不可靠。是否有必要创建一个扩展AbstractModule的单独测试模块?

最佳答案

我建议在类外部注入(inject)依赖项(这将遵循单一责任原则)。那么你可以使用标准的 Mockito:

@RunWith(MockitoJUnitRunner.class)
public class SomeAdaptorTest {

@Inject
Configuration configuration;

@InjectMocks
SomeAdaptor adaptor = new SomeAdaptor();

@Before
public void setUp() {
when(configuration.getId()).thenReturn(5);
}
...

或者创建另一个构造函数(包私有(private))来接受模拟的依赖项。

关于unit-testing - 如何对具有字段注入(inject)的类进行单元测试(使用 guice),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026957/

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