亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

向春豆中注入Mockito模擬

向春豆中注入Mockito模擬

PIPIONE 2019-07-05 10:21:18
向春豆中注入Mockito模擬為了使用JUnit進行單元測試,我想將一個Mockito模擬對象注入到Spring(3+)bean中。當前,通過使用@Autowired私有成員字段上的注釋。我考慮過用ReflectionTestUtils.setField但是,我希望注入的bean實例實際上是一個代理,因此不聲明目標類的私有成員字段。我不希望為依賴項創建一個公共設置程序,因為那時我將純粹為了測試目的而修改我的接口。我跟蹤了一些建議由Spring社區提供,但是模擬沒有被創建,自動連接失敗:<bean id="dao" class="org.mockito.Mockito" factory-method="mock">     <constructor-arg value="com.package.Dao" /></bean>我目前遇到的錯誤如下:...Caused by: org...NoSuchBeanDefinitionException:     No matching bean of type [com.package.Dao] found for dependency:     expected at least 1 bean which qualifies as autowire candidate for this dependency.     Dependency annotations: {         @org...Autowired(required=true),         @org...Qualifier(value=dao)     }at org...DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(D...y.java:901)at org...DefaultListableBeanFactory.     doResolveDependency(D...y.java:770)如果我設置constructor-arg值為無效的值,在啟動應用程序上下文時不會發生錯誤。
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

我有一個非常簡單的解決方案,使用SpringJavaConfig和Mockito:

@Configurationpublic class TestConfig {

    @Mock BeanA beanA;
    @Mock BeanB beanB;

    public TestConfig() {
        MockitoAnnotations.initMocks(this); //This is a key
    }

    //You basically generate getters and add @Bean annotation everywhere
    @Bean
    public BeanA getBeanA() {
        return beanA;
    }

    @Bean
    public BeanB getBeanB() {
        return beanB;
    }}


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 612 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號