JUNIT测试时ContextLoader.getCurrentWebApplicationContext()=NULL

本文介绍如何在JUNIT测试中手动初始化Spring应用上下文,通过创建MockServletContext并设置配置文件位置,注册ContextLoaderListener来启动Spring容器。

在JUNIT测试方法中加入以下代码

MockServletContext sc = new MockServletContext("");
sc.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM, "/applicationContext.xml");
ServletContextListener listener = new ContextLoaderListener();
ServletContextEvent event = new ServletContextEvent(sc);
listener.contextInitialized(event);
Wanted but not invoked: competitionLikeDao.update( CompetitionLikePo(id=null, likeType=null, mode=null, competitionId=1, userId=null, userName=null, contestantIdentity=identity, dsId=null, dsName=null, groupId=null, deptId=null, deptName=null, createTime=null, updateTime=null, status=null, likeNums=2) ); -> at com.cmbchina.ccc.msp.nebulaservice.service.competition.CompetitionLikeServiceImplTest.testCompetitionLikeUpdateWithStatus1(CompetitionLikeServiceImplTest.java:62) Actually, there were zero interactions with this mock. Wanted but not invoked: competitionLikeDao.update( CompetitionLikePo(id=null, likeType=null, mode=null, competitionId=1, userId=null, userName=null, contestantIdentity=identity, dsId=null, dsName=null, groupId=null, deptId=null, deptName=null, createTime=null, updateTime=null, status=null, likeNums=2) ); -> at com.cmbchina.ccc.msp.nebulaservice.service.competition.CompetitionLikeServiceImplTest.testCompetitionLikeUpdateWithStatus1(CompetitionLikeServiceImplTest.java:62) Actually, there were zero interactions with this mock. at com.cmbchina.ccc.msp.nebulaservice.service.competition.CompetitionLikeServiceImplTest.testCompetitionLikeUpdateWithStatus1(CompetitionLikeServiceImplTest.java:62) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:50) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) 什么问题
最新发布
08-08
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值