Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让我的Spring JUnit测试认为它运行在一个通用的应用程序上下文中?_Java_Spring_Unit Testing_Junit_Integration Testing - Fatal编程技术网

Java 如何让我的Spring JUnit测试认为它运行在一个通用的应用程序上下文中?

Java 如何让我的Spring JUnit测试认为它运行在一个通用的应用程序上下文中?,java,spring,unit-testing,junit,integration-testing,Java,Spring,Unit Testing,Junit,Integration Testing,我使用的是spring3.2.6.RELEASE,junit4.11,以及dwr3.0.0-rc2。我的问题是,在运行SpringJUnit集成测试时,如何模拟在org.springframework.context.support.GenericaApplicationContext中运行的东西 我试过这个: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml",

我使用的是
spring3.2.6.RELEASE
junit4.11
,以及
dwr3.0.0-rc2
。我的问题是,在运行SpringJUnit集成测试时,如何模拟在
org.springframework.context.support.GenericaApplicationContext
中运行的东西

我试过这个:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml", "classpath:dwr-context.xml" })
@WebAppConfiguration
public class MyServiceIT 
{}
其中我的“dwr context.xml”文件设置为

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">

  <dwr:configuration>
    <dwr:convert class="java.lang.StackTraceElement" type="bean"/>
  </dwr:configuration>
  <dwr:annotation-config id="annotationConfig" />
  <dwr:annotation-scan base-package="org.mainco.subco" scanDataTransferObject="true" scanRemoteProxy="true" />
  <dwr:url-mapping />
  <dwr:controller id="dwrController" debug="false" /> 

  <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="alwaysUseFullPath" value="true"/>
    <property name="urlMap">
      <map>
        <entry key="/dwr/**" value-ref="dwrController" />
      </map>
    </property>
  </bean> 
</beans>

我遇到了同样的错误并修复了它 测试类中的
@WebAppConfiguration
,如下所示:

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import com.arpit.jsr.config.DataConfig;
import com.arpit.jsr.config.WebConfig;

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class, DataConfig.class })
public class ServiceTest {

    @Test
    public void testSayHello() {
        Assert.assertEquals("Hello world!", "Hello world!");
    }
}

您的问题是错误的:您的问题是您正在一个通用的ApplicationContext中运行,但您的Dwr*beans需要一个WebApplicationContext。您好..您是否能够解决此问题..如果可以,请提供一个示例..@EvaMariam在我的情况下,通过在测试中添加WebAppConfiguration注释解决了问题class@EvaMariam它起作用了,当我从Spring4.2升级到4.3,并且我的一些测试由于同样的错误开始失败时,这个修复对我来说是有效的。
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import com.arpit.jsr.config.DataConfig;
import com.arpit.jsr.config.WebConfig;

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class, DataConfig.class })
public class ServiceTest {

    @Test
    public void testSayHello() {
        Assert.assertEquals("Hello world!", "Hello world!");
    }
}