当前位置: 首页 > 知识库问答 >
问题:

Fitnesse中的Spring MVC测试

姜景焕
2023-03-14

我要测试的用例是身份验证:

我有一个加载spring上下文通用Fixture:

public abstract class GenericSpringFixture extends GenericBelFixture {

protected static AutowireCapableBeanFactory beanFactory;
protected static ClassPathXmlApplicationContext context;

static {
    initSpring();
}

public static void initSpring() {
    if ((context == null) || !context.isActive()) {
        context = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-fitnesse-common.xml");
        beanFactory = context.getAutowireCapableBeanFactory();
    }
}

public GenericSpringFixture() {
    beanFactory.autowireBeanProperties(this, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);
}

public static AutowireCapableBeanFactory returnBeanFactory() {
    return beanFactory;
}
}

applicationContext-fitnesse-common.xml文件正在加载我的平台表单的所有依赖项,其中包括我的servlet(Spring Mvc文件)配置

public class IdentificationUtilisateur extends GenericSpringFixture{

@Autowired
private WebApplicationContext webApplicationContext;

@Autowired
private FilterChainProxy springSecurityFilterChain;

private MockMvc mockMvc;

public void seLogerAvecIdentifiantEtMotDePasse(String identifiant,
        String motDePasse) {
    this.mockMvc = MockMvcBuilders
            .webAppContextSetup(this.webApplicationContext)
            .addFilters(this.springSecurityFilterChain).build();
}

public void accesReussi() throws Exception{
    mockMvc.perform(
            post("/j_spring_security_check")
                    .param("j_username", "bilal")
                    .param("j_password", "Pa1234567"));
}
}

org.springframework.beans.factory.BeanCreationException:创建名为“ma.awb.ebk.bel.web.fixture.authentication.IdentificationUtilisateur”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beancreationexception:无法自动连接字段:private org.springframework.web.context.webapplicationcontext ma.awb.ebk.bel.web.fixture.authentication.identificationutilisateur.webapplicationcontext;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项得[org.springframework.web.context.WebApplicationContext]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}

我的Slim fixture和我的test Spring mvc之间的唯一区别是,在我的test mvc中,我处于一个junit上下文中,并且我在我的junit测试中启用了这个注释:

@WebAppConfiguration

谢谢你的帮助。

共有1个答案

吕承望
2023-03-14

您在GenericSpringFixture中创建了一个applicationContext,但它不能自动连接IdentificationUtilisateur中的组件。

如果您用@RunWith(SpringJUnit4ClassRunner.class)注释您的测试类,@autowire可以使用,但我不确定它是否可以用于您的健身类。

也许您需要手动注入它们:

private WebApplicationContext webApplicationContext = GenericSpringFixture.context()
 类似资料:
  • FitNesse是一个增加了可触发Junit 测试等附加功能的wiki程序。如果这些测试能够与业务需求结合起来,就会使业务需求更加清晰。而且,测试数据的组织更有逻辑性。使用FitNesse更 重要的是学习隐含在其中的一些思想,某些部分需求可以作为测试的一部分,这意味着,这些需求是可以测试的,或者说是可以进行校验的。 利用 FitNesse,开发的工作过程可以这样描述:需求工程师使用FitNesse

  • 我试图测试我的Spring MVC控制器,但我不断收到与Thymeleaf模板相关的错误。我真的不想在控制器测试中处理模板错误,因为这不是我真正感兴趣的。当模板不存在时让测试失败是可以的,但现在我收到了与根据错误代码找不到消息相关的错误。 当我运行应用程序时,这个问题不存在。我一直在尝试弄清楚如何设置测试环境来解决这个问题,但在那里我找不到任何有效的方法。现在,我只是真的想让控制器代码正常工作。

  • 我试图在我的项目中设置Fitnesse,但我面临着番石榴罐的一些问题这就是我的pom.xml的样子: 我正在使用在Fitnesse中设置类路径。此插件瞬态使用jar。我的项目还需要Guava jar。Maven依赖树: 这是我在尝试启动fitnesse服务器时遇到的错误: 现在,如果在maven类路径插件之后声明Guava依赖项,那么我不会遇到这个问题,但是我的单元测试和集成测试失败,出现了Met

  • 我试图建立一个简单的SpringMVC项目。 我创建了Web应用程序项目,然后添加了Spring和公共日志库。 还有这个网站。xml文件 这是HelloWebservlet。xml 然后我创建了java类(HelloContoller.java)com.tutorialspoint包 然后我在WEB-INF/JSP/hello中创建了JSP页面。jsp 我正在处理服务器glassfish,当我运行

  • 在SpringMVC项目中,客户机发送一个带有序列化对象的请求,客户机本身是一个小程序,所以它不希望收到一个web页面作为响应,而是一个带有字符串对象的响应,该响应将告诉他这是成功还是失败。那么解决方案是什么呢?我想在@Controller中使用返回void的方法,或者返回不存在页面的方法?(在这两种情况下,我还想知道是否有回复给客户)

  • 本文向大家介绍详解Spring MVC如何测试Controller(使用springmvc mock测试),包括了详解Spring MVC如何测试Controller(使用springmvc mock测试)的使用技巧和注意事项,需要的朋友参考一下 在springmvc中一般的测试用例都是测试service层,今天我来演示下如何使用springmvc mock直接测试controller层代码。 1