mjb546853862
现在的未来的
采纳率50%
2017-08-03 02:14 阅读 3.4k
已采纳

关于Junit结合spring测试加载bean的问题

40

问题一:
public class text
{
private static final Logger logger = LoggerFactory.getLogger(text.class);
@Autowired
private NumBasicJob numBasicJob;
@Test
public void insert()
{
ApplicationContext act=new ClassPathXmlApplicationContext("spring.xml");
NumBasicJob p=(NumBasicJob) act.getBean("numBasicJob");
p.ExecuteOcfJob(text.class);
//numBasicJob.ExecuteOcfJob(text.class);
}
}
我代码全部使用注解,加载spring并没有报错,但是获取不到bean,也就是p为空,我认为可能是 ApplicationContext act=new ClassPathXmlApplicationContext("spring.xml
");不支持注解,不知道对不对?
问题2:
public class text extends BaseJunit4Test
{
private static final Logger logger = LoggerFactory.getLogger(text.class);
@Autowired
private NumBasicJob numBasicJob;
@Test
public void insert()
{
/* ApplicationContext act=new ClassPathXmlApplicationContext("spring.xml");
NumBasicJob p=(NumBasicJob) act.getBean("numBasicJob");
p.ExecuteOcfJob(text.class);*/
numBasicJob.ExecuteOcfJob(text.class);
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"classpath:spring.xml"
})
public class BaseJunit4Test {
private static final Logger LOG_RECORD=Logger.getLogger(OcfProductBasicJob.class);
@Before
public void init() {
//在运行测试之前的业务代码
LOG_RECORD.info("start to execute task," + new Date().toString());
}
@After
public void after() {
//在测试完成之后的业务代码
LOG_RECORD.info("end to execute task," + new Date().toString());
}
}
按道理说,我使用junit结合spring进行测试的时候,numBasicJob不应该为空,因为这个支持注解。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    u010001477 Nothing_katu 2017-08-03 02:25

    问题1:支持注解的,但是你要在你的spring.xml文件中配置

        <!--支持注解  -->
      <context:annotation-config /> 
        <!--需要扫描的包  -->
        <context:component-scan base-package="com.cn..." > 
    

    问题2:你这里不支持注解了,首先你想spring自动给你注入NumBasicJob ,那么你的这个类text就必须交给spring管理,也就是text这个类也需要加
    @component注解。

    点赞 评论 复制链接分享
  • zy841958835 cloudyzhao 2017-08-03 03:16

    SpringJUnit4ClassRunner.class这个是junit4的默认执行器负责执行你的junit测试

    点赞 评论 复制链接分享

相关推荐