首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wcm io AemContextExtension在JUnit 5中模拟LanguageManager

wcm io AemContextExtension在JUnit 5中模拟LanguageManager
EN

Stack Overflow用户
提问于 2021-03-18 22:35:58
回答 1查看 109关注 0票数 0

我刚刚升级了我们的AEM代码库,以使用JUnit 5,但我们在模拟LanguageManager的特定方法的一些测试中遇到了一些问题。

代码语言:javascript
复制
@MockitoSettings(strictness = Strictness.LENIENT)
@ExtendWith({AemContextExtension.class, MockitoExtension.class})
public class SomeComponentTest {

    @Mock
    private LanguageManager languageManager;

    @BeforeEach
    public void setUp() throws Exception {
        ...
        context.registerService(LanguageManager.class, languageManager);
        ...
    }


    @Test
    public void someTest() {
        ...
        Page mockPage = mock(Page.class);
        given(languageManager.getLanguageRoot(any())).willReturn(mockPage);
        ...
    }
}

即使我注册了LanguageManager模拟,它似乎仍然获得了WCM提供的模拟,它是在这里初始化的:https://github.com/wcm-io/wcm-io-testing/blob/develop/aem-mock/core/src/main/java/io/wcm/testing/mock/aem/context/AemContextImpl.java -> registerInjectActivateService(https://github.com/wcm-io/wcm-io-testing/blob/develop/aem-mock/core/src/main/java/io/wcm/testing/mock/aem/context/AemContextImpl.java MockLanguageManager());

我在这里做错了什么吗,或者只是没有办法监视/模拟LanguageManager的方法。请注意,在过去,这在使用以下命令时有效:

代码语言:javascript
复制
@RunWith(MockitoJUnitRunner.class)
EN

回答 1

Stack Overflow用户

发布于 2021-03-25 21:59:36

我在这里得到了答案:https://wcm-io.atlassian.net/browse/WTES-58?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21269#comment-21269

代码语言:javascript
复制
context.registerService(LanguageManager.class, myCustomLanguageManager,
Constants.SERVICE_RANKING, 100);

代码语言:javascript
复制
this.mockLanguageManager = context.registerService(LanguageManager.class, 
spy((MockLanguageManager)context.getService(LanguageManager.class)), 
Constants.SERVICE_RANKING, Integer.MAX_VALUE);

// Now you can leverage the mocked language manager that is provided, while 
you can still override some of the methods if desired, due to it being a spy
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66693264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档