本文主要是介绍JavaEE_Junit_Junit对Spring注入的Service层的测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天博主遇到一个问题,在Serivce层利用POI导出Excel表格,博主想对这个方法进行测试,
但由于mapper 是注入的, 直接用 main 方法并不成功,报错和出现的问题如下图:
主要原因:Mapper是调用时候注入的,所以此时Mapper为null
这时候我们可以使用junit 对service进行测试即可解决问题:
博主假设大家已经导入了Junit 包
在文件上单击右键,创建一个单元测试文件,如下图的步骤
选择Junit测试
单击下一步,这时候就可以选择测试哪些方法了
编写测试代码:
重要的步奏,在setUp中读取Spring配置文件,博主用的是Spring+SpringMvc+Mybatis进行开发,Service, Mapper(DAO)等交由Spring管理
配置文件中扫描service
测试代码:
package cn._2vin.yannan.test;import static org.junit.Assert.*;import java.util.List;import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import cn._2vin.yannan.bean.MobileDepartmentTotal;
import cn._2vin.yannan.service.MobileDepartmentTotalService;public class MobileDepartmentTotalServiceTest {private ApplicationContext applicationContext;@Beforepublic void setUp() throws Exception {applicationContext = new FileSystemXmlApplicationContext("classpath:spring/applicationContext.xml");}@Testpublic void testDeleteByPrimaryKey() {fail("Not yet implemented");}@Testpublic void testSelectBySelective() {MobileDepartmentTotalService mobileDepartmentTotalService = (MobileDepartmentTotalService)applicationContext.getBean("mobileDepartmentTotalService");//MobileDepartmentTotal mobileDepartmentTotal = new MobileDepartmentTotal();List<MobileDepartmentTotal> list = mobileDepartmentTotalService.selectBySelective(null);System.out.println(list.size());}@Testpublic void testSelectBySelectiveNoPage() {fail("Not yet implemented");}@Testpublic void testSelectBySelectiveCount() {fail("Not yet implemented");}@Testpublic void testExportExcel() {MobileDepartmentTotalService mobileDepartmentTotalService = (MobileDepartmentTotalService)applicationContext.getBean("mobileDepartmentTotalService");mobileDepartmentTotalService.exportExcel(null);}}
最后只要在想测试的方法,上右击run as junit 即可,
对类测试,则在文件上右击以run as junit
这篇关于JavaEE_Junit_Junit对Spring注入的Service层的测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!