簡體   English   中英

春季:覆蓋/模擬依賴項的依賴項

[英]Spring: Overriding/Mocking dependency's dependency

在項目上運行測試用例會花費大量時間。 在診斷此問題時,我們確定某個服務呼叫正在拖延其數字腳。 我們希望像其他項目一樣通過Spring對其進行模擬,但是該項目會替代性地調用服務(它調用一個項目,然后再調用一個項目,然后再調用該服務;每個都具有自己的spring配置)。

Project Alpha-> ​​Project Bravo-> Charlie項目的Service Foo

問題:對Project Alpha中的Spring配置進行修改是否可以模擬出Service Foo,還是將Bravo Project中的Spring配置不受其.war文件外部的配置影響。

注意:可以通過將模擬配置放置在Project Bravo中來輕松實現,但在這種情況下不可行。

石器時代版

Springockito

這是對spring的一個小擴展,它簡化了集成測試的相關上下文xml文件中的創建模擬副本的方式。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mockito="http://www.mockito.org/spring/mockito"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.mockito.org/spring/mockito http://www.mockito.org/spring/mockito.xsd">
...
    <mockito:mock id="innerBean" class="my.project.InnerBean" />
..
</beans>

新時代版本

試試@ReplaceWithMock注釋

@ContextConfiguration(loader = SpringockitoContextLoader.class,
locations = "classpath:/context.xml")
public class SpringockitoAnnotationsMocksIntegrationTest extends AbstractJUnit4SpringContextTests {

    @ReplaceWithMock
    @Autowired
    private InnerBean innerBean;

...
}

https://bitbucket.org/kubek2k/springockito/wiki/springockito-annotations

暫無
暫無

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

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