활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
Hello, I am having a problem where the resource is not injected into the Sling Model constructor during a test, I was able to inject mock services into the constructor, but unable to with the resource object (I do not wish to inject the Resource via Sling Model Annotations, as I want to use the constructor only):
WebData Sling Model:
@Model(adaptables = {SlingHttpServletRequest.class, Resource.class},
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class WebData {
@inject
public WebData(Resource resource) {
}
}
SlingModel Unit Test:
@test
public void itShouldInject() {
Resource resource = context.resourceResolver().getResource("/content/my-site/page/jcr:content/par/web");
undertest = resource.adaptTo(WebData.class);
}
해결되었습니다! 솔루션으로 이동.
Hey,
I know you said only constructor solutions, but I had a problem like this in the past, where It was extremely challenging to mock the Resource.class object into the constructor. Instead of initiating the Resource object dependency from the constructor, try using these Sling Model Annotations.
@Model
public class WebData {
// this adapts the adaptable object into a resource object.
@Deleted Account
private Resource resource;
//or
@ScriptVariable
// this calls on the current resource.
Resource resource;
}
for other Sling Model annotations, checkout this blog https://sourcedcode.com/aem-sling-model-injectors-annotations-reference-guide
조회 수
답글
좋아요 수
Hey,
I know you said only constructor solutions, but I had a problem like this in the past, where It was extremely challenging to mock the Resource.class object into the constructor. Instead of initiating the Resource object dependency from the constructor, try using these Sling Model Annotations.
@Model
public class WebData {
// this adapts the adaptable object into a resource object.
@Deleted Account
private Resource resource;
//or
@ScriptVariable
// this calls on the current resource.
Resource resource;
}
for other Sling Model annotations, checkout this blog https://sourcedcode.com/aem-sling-model-injectors-annotations-reference-guide