Spring整合Junit4进行单元测试(JavaConfig配置)

版权声明:禁止CV操作 https://blog.csdn.net/H44341466/article/details/84675583

1.我们使用junit进行对spring项目进行单元测试的时候,如果我们是使用的xml配置的方式;大家都知道是使用下面的方式:

@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/applicationContext.xml")
@TestPropertySource("classpath:application.properties")
public class EmployeeServiceTest {
    @Autowired
    private EmployeeService employeeService;

    @Test
    public void testSyncEmployee() {
        BizResult bizResult = employeeService.autoBindEmployee();
    }
}

其中@ContextConfiguration是配置我们的xml文件;

2.但是如果我们不是使用的xml而是javaConfig呢?比如我们使用的是下面这样的配置

@Slf4j
@Configuration
@EnableWebMvc
@ComponentScan("com.facishare.open")
@MapperScan("com.facishare.open.open.fscommon.mapper")
public class MvcConfig {

    @Value("${spring.datasource.url}")
    private String dbUrl;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;
    @Value("${spring.datasource.driver-class-name}")
    private String driverClassName;

    @Bean(name="sqlSessionFactory")
    @Autowired
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        return sessionFactoryBean;
    }

    @Bean
    public DataSource dataSource (){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUrl("jdbc:mysql://localhost:3306/test?        useUnicode=true&characterEncoding=utf-8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        return dataSource;
    }
}

如果使用javaConfig形式,也很简单,只需要把@ContextConfiguration(locations = "classpath:/spring/applicationContext.xml")修改为@ContextConfiguration(classes = MvcConfig.class)就OK了;示例如下:

@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MvcConfig.class)
public class Test {

}

然后就可以写你自己的测试单元了!!

猜你喜欢

转载自blog.csdn.net/H44341466/article/details/84675583
今日推荐