[英]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.