gpt4 book ai didi

java - Spring Webflow 2.3测试: How to mock @Autowired fields of a flow variable

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:19 26 4
gpt4 key购买 nike

对于在 Spring Webflow 流程中使用的模拟 Spring Bean 有明确的指导原则。默认情况下,流可以隐式引用流中的 Spring Bean,并且 AbstractXmlFlowExecutionTests 基测试类有一个方法可以重写以模拟这些 Bean。

我找不到类似的方法来模拟被测流中流变量的 @Autowired 字段。请参阅以下基本设置以了解我的意思。

测试中的流程:

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"
parent="commons">

<var name="consumerBean" class="com.mycompany.ConsumerBean" />

<!-- etc.. -->

带有 @Autowired 字段的 Bean:

public class ConsumerBean implements Serializable {

@Autowired
transient CustomerService userService;

//Etc..

所以我的问题是,如何向“consumerBean”流变量提供/配置“userService”的模拟?

最佳答案

流变量的 @Autowired 字段是 Spring Bean,因此应在配置和模拟流访问的 Spring Bean 的同一位置进行配置。

    // Setup mocks
@Override
protected void configureFlowBuilderContext(MockFlowBuilderContext builderContext) {

builderContext.registerBean("consumerBean", mock(ConsumerBean.class));


builderContext.registerBean("userService", mock(CustomerService.class));
}

关于java - Spring Webflow 2.3测试: How to mock @Autowired fields of a flow variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com