簡體   English   中英

Spring Webflow 2.3測試:如何模擬流變量的@Autowired字段

[英]Spring Webflow 2.3 Testing: How to mock @Autowired fields of a flow variable

對於在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));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM