我必须模拟正在服务的构造函数中创建的jerseyclient。提供的服务是通过Spring的@Autowired注入的被测系统。
在服务的构造函数中,client = client.create()方法被写入。我们无法更改此代码(虽然这是代码味道)。我想模仿球衣客户端,但它是在服务的构造函数中。我无法模仿这个
答案 0 :(得分:-1)
sooo ...长话短说..承认你使用mockito,在你的src中进行测试你应该为你的测试提供一个applicationcontext ...通常我们以编程方式定义一个这样的东西,沿着那些线... 导入用于测试目的的.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();
}
}