模拟@Autowired服务的构造函数(被测系统)

时间:2015-05-27 19:37:17

标签: spring mockito powermock powermockito

我必须模拟正在服务的构造函数中创建的jerseyclient。提供的服务是通过Spring的@Autowired注入的被测系统。

在服务的构造函数中,client = client.create()方法被写入。我们无法更改此代码(虽然这是代码味道)。我想模仿球衣客户端,但它是在服务的构造函数中。我无法模仿这个

1 个答案:

答案 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();
                    }
                    }