0 0

junit可以自动注入,tomcat下报空指针5

我在junit下debug可以看到自动注入是成功的,但是整个项目放到tomcat下的时候自动注入的对象都为null,请问这是什么原因

问题补充:web.xml加载的配置文件
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
classpath*:/applicationContext.xml,
classpath*:/applicationContext-shiro.xml
   </param-value>
</context-param>
测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:src/main/webapp/WEB-INF/spring-configuration/*.xml", "file:src/main/webapp/WEB-INF/deployerConfigContext.xml" })

问题补充:都加了@component注解,没有在配置文件里面定义bean,加了扫描
<context:component-scan base-package="com.base">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

问题补充:web.xml的配置贴错了,是这样的
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      /WEB-INF/spring-configuration/*.xml
      /WEB-INF/deployerConfigContext.xml
    </param-value>
  </context-param>

问题补充:顺便补充完整的junit测试类,打印出来是有值的
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:src/main/webapp/WEB-INF/spring-configuration/*.xml", "file:src/main/webapp/WEB-INF/deployerConfigContext.xml" })
public class AutowiredTest {
@Autowired
private UserOdmDao userDao;

@Test
public void autowired(){
System.out.println(userDao);
}
}

问题补充:1.被管理类加@component;
2.配置扫描;
3.加载配置文件,包括spring和web.xml;
还缺哪个部分
2013年8月01日 11:09

4个答案 按时间排序 按投票排序

0 0

你这个

引用
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "file:src/main/webapp/WEB-INF/spring-configuration/*.xml", "file:src/main/webapp/WEB-INF/deployerConfigContext.xml" })

这里的spring配置文件不在classpath下边呀,
引用
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
classpath*:/applicationContext.xml,
classpath*:/applicationContext-shiro.xml
   </param-value>
</context-param>

这里配置的又是在classpath下,位置错了

2013年8月06日 17:52
0 0

即使unittest里没有写setter,
SpringJUnit4ClassRunner 会把
@Autowired
private UserOdmDao userDao;
变成accesiable,并完成注入.

但在runtime期(tomcat里)没有setter就会是null

2013年8月02日 20:19
0 0

1、web.xml 配ContextLoaderListener了吗?
2、具体的配置文件存放位置、web.xml

2013年8月02日 14:15
0 0

配置文件路径对否?贴出更多信息有助于排查。

2013年8月01日 11:50

相关推荐

    eclipse下利用ant、junit进行自动化测试例子源码

    总结来说,"eclipse下利用ant、junit进行自动化测试例子源码"是一个学习自动化测试流程的实用案例。通过研究和实践这个例子,开发者不仅可以掌握ANT和JUnit的基本用法,还能了解如何在Eclipse中整合这两个工具,实现...

    junit + ant 自动化测试

    在实际应用中,`Ant`可以配置成在每次构建时自动运行`JUnit`测试,这样可以在代码提交或合并前及时发现潜在的问题。同时,`JUnit`的测试结果可以被`Ant`记录并输出,以便于分析测试覆盖率和失败原因。这样的自动化...

    JBoss encore 工程和 JUnit测试自动生成工具

    当与JUnit结合使用时,PowerMock可以帮助开发者在无法直接控制的情况下进行测试,这对于那些有复杂依赖关系的代码尤其有用。Encore可能提供与PowerMock的集成,使测试过程更加灵活和强大。 总的来说,JBoss Encore...

    自动饮料机Junit测试(软件测试与质量保证实验).rar

    本实验“自动饮料机Junit测试”旨在帮助学生深入理解和应用单元测试,特别是在Java编程环境下。单元测试是一种针对程序代码最小可测试单元进行验证的方法,通常这个单元是函数或方法。Junit是Java领域广泛使用的单元...

    JBoss encore 工程和 JUnit测试自动生成工具2

    通过JBoss encore的测试自动生成工具,开发者可以快速创建JUnit测试类,减少了手动编写测试代码的工作量,提高了测试覆盖率。 此外,seam和weld是两个与encore密切相关的技术。Seam是一个全面的Java EE框架,它整合...

    对基于Junit的测试代码自动化生成的研究

    标题中的“对基于Junit的测试代码自动化生成的研究”揭示了本文主要关注的是利用Junit这一流行的Java单元测试框架进行自动化测试代码的生成技术。Junit是Java开发中广泛使用的工具,它允许开发者编写可重复运行的...

    解决junit获取注入bean问题

    NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2414402

    JUnit单元测试自动构建脚本

    通过Ant,我们可以将JUnit测试集成到构建流程中,实现测试的自动化执行。 在给定的文件中,"AntOpenCommand.java"可能是自定义的Ant任务类,用于扩展Ant的功能,比如打开命令行窗口执行JUnit测试。这个类可能包含了...

    Junit5.7.2离线jar

    在Spring框架的上下文中,JUnit5可以很好地与Spring Test集成,允许我们在测试中注入依赖并管理Spring应用程序上下文。通过使用@ExtendWith(SpringExtension.class)注解,我们可以开启Spring的测试支持,利用@...

    JUnit报initializationError

    标题 "JUnit 报 initializationError" 描述了一个在使用 JUnit 测试框架时常见的问题,即在执行测试时遇到 `initializationError`。这通常意味着在测试初始化阶段出现了错误,可能是由于测试类的静态初始化块、构造...

    Junit教程 自动化测试

    ### Junit教程:自动化测试 #### 一、引言与背景 在软件开发过程中,确保代码的质量至关重要。软件错误不仅会导致资源浪费,还可能带来安全风险。为了减轻这些问题,自动化测试成为一种有效的手段。JUnit作为Java...

    selenium+junit自动化测试框架

    1.seleRrj是工程包,包含简单的自动化测试demo以及jar包,已经加入junit4支持;调试运行通过; 2.selenium-fireFox插件,安装在火狐浏览器里面 用于录制自动化脚本和学习自动化测试; 3.我用的火狐版本是v21.0版本,...

    JUnit3.8.1 以及使用JUnit测试的代码demo

    在实际应用中,开发者通常会使用构建工具(如Maven或Gradle)配合JUnit进行自动化测试,这使得测试能够集成到开发流程中,并且可以在每次代码修改后自动运行。JUnit的结果可以通过测试报告展示,帮助开发者快速定位...

    使用mockito玩转junit test

    例如,我们可以使用`@RunWith(MockitoJUnitRunner.class)`注解来运行一个测试类,这会自动初始化所有的mock对象。然后,我们可以使用`@Mock`注解来创建mock对象,如`@Mock MyService myService`。 在测试方法中,...

    junit5.rar包含JUnit Platform + JUnit Jupiter + JUnit Vintage依赖jar包

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...

    eclispe3.6自动生成测试类(Junit)插件

    标题 "eclispe3.6自动生成测试类(Junit)插件" 指的是一个Eclipse或MyEclipse的扩展,它允许用户方便地为项目中的源代码自动生成JUnit测试类。JUnit是一个广泛使用的Java编程语言的单元测试框架,它简化了编写和执行...

    junit5.jar

    JUnit Vintage则保留了对JUnit 4测试的支持,这意味着在JUnit 5环境中可以无缝运行JUnit 4编写的测试,确保了向新版本迁移的平滑过渡。 使用"junit5.jar"进行测试,需要将其添加到项目的类路径中。在Maven或Gradle...

    junit4.1 junit4.1

    junit4.1junit4.1junit4.1junit4.1junit4.1

Global site tag (gtag.js) - Google Analytics