我必须模拟在受控服务的构造函数中创建的 jerseyclient。主题服务是通过 Spring 的 @Autowired 注入的被测系统。
在服务的构造函数中编写了 client=client.create() 方法。我们无法更改此代码(尽管这是代码异味)。我想模拟球衣客户端,但它在服务的构造函数中。我无法嘲笑这个
我必须模拟在受控服务的构造函数中创建的 jerseyclient。主题服务是通过 Spring 的 @Autowired 注入的被测系统。
在服务的构造函数中编写了 client=client.create() 方法。我们无法更改此代码(尽管这是代码异味)。我想模拟球衣客户端,但它在服务的构造函数中。我无法嘲笑这个
sooo...长话短说..承认您使用mockito,在您的src中进行测试,您应该有一个用于测试的应用程序上下文..通常我们以编程方式定义一个,因此,沿着这些思路..导入您使用的.xml文件测试目的(在我的情况下,我为邮件服务器、连接和身份验证导入了一个),而不是我用于“本地”环境的那个。然后定义一个方法来设置你的每一个服务。您可能还需要为您的模板解析器添加一个模拟,但最终这一切都取决于您的堆栈......所以根据您的方法,最后的事情可能会有点不同,但最终您会做一些事情我在下面概述的内容:
@Configuration
@ImportResource(value = {
"classpath:applicationContext-jdbc-test.xml",
"classpath:applicationContext-ldap-test.xml",
"classpath:applicationContext-mail-test.xml"})
public class ApplicationTestContext {
@Bean
public ObjectMapperWrapper objectMapperWrapper() {
return Mockito.mock(ObjectMapperWrapper.class);
}
@Bean
public YourService yourService() {
return new YourServiceImpl();
}
}