내 커뮤니티 업적 표시줄을 확대합니다.

Submissions are now open for the 2026 Adobe Experience Maker Awards.

Mark Solution

활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.

해결됨

Adapt resource to Page int unit test

Avatar

Level 2

Hi everyone, I am having problems to test Pages in my unit tests. I have the following code:

Resource resource = context.load().json(PAGE_PATH + JSON_EXT, PAGE_PATH);

Page page = resource.adaptTo(Page.class);

The answer of adapTo is always null.

I am working with SlingMocks, and this is my resource

public final SlingContext context = new SlingContext();

There is a option to do this? I know its possible with wcm.io​ but I don't want to include that just for this kind of tests.

Thanks in advance.

1 채택된 해결책 개

Avatar

정확한 답변 작성자:
Community Advisor

Dear Jora,

Sling does not know about AEM WCM Page Api, therefore, it won't handle it OOTB. Of course you can wring your custom logic to Sling Mock's it how to handle Page API, but then you are re-implementing wcm.io.


Regards,Peter

원본 게시물의 솔루션 보기

5 답변 개

Avatar

Community Advisor

Dear Jora,

Have you looked at [1]

[1] Usage | AEM Mocks :

public class ExampleTest {

  @Rule

  public final AemContext context = new AemContext();

  @Test

  public void testSomething() {

  Resource resource = context.resourceResolver().getResource("/content/sample/en");

  Page page = resource.adaptTo(Page.class);

  // further testing

  }

}

shows basic dummy example [2]

[2] GitHub - xuanuy/mock-testing

Regards,

Peter

Avatar

Level 2

Thanks for the answer Peter.

Yes, I already saw that, but I'm wondering if this is possible without wcm.io (that's where it comes from AemContext), now I just use Apache Sling Mocks. I'm looking for solutions using just this dependency, and if is not possible I will jump to the other one.

Avatar

정확한 답변 작성자:
Community Advisor

Dear Jora,

Sling does not know about AEM WCM Page Api, therefore, it won't handle it OOTB. Of course you can wring your custom logic to Sling Mock's it how to handle Page API, but then you are re-implementing wcm.io.


Regards,Peter

Avatar

Community Advisor

There should not be too much risk(check with your penetration security team before adding any dependency) adding wcm.io, if you declare it as <scope>test</scope> time dependency in maven. It's only initialised for testing then.

Regards,

Peter

Avatar

Level 2

Thanks Peter! I will look whats its the more convenient solution for us.