Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Unable to inject a service in junit test cases to test a sling model (having an injection of service using @OSGiService annotation)

Avatar

Level 1

Hi All,

I recently started using AemMocks and am still exploring. In one of the requirements, Sling models are implemented all looks fine till now. I started unit testing the same using Aem Mocks.

Problem:

I am unable to inject the service reference into the test class using 'context.registerInjectActivateService'.I have gone through numerous reference documents online but nothing is helpful.

any help is appreciated.

Thanks,

Harshith.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi HKesani,

Could you please give a try to below code to mock OSGi service?

1852742_pastedImage_1.png

Reference: https://wcm.io/testing/aem-mock/usage.html#Registering_OSGi_service

Regards,

Arpit Varshney

View solution in original post

2 Replies

Avatar

Correct answer by
Community Advisor

Hi HKesani,

Could you please give a try to below code to mock OSGi service?

1852742_pastedImage_1.png

Reference: https://wcm.io/testing/aem-mock/usage.html#Registering_OSGi_service

Regards,

Arpit Varshney

Avatar

Level 9

Unfortunately, none of these methods work if the service you want to call calls another service. In this case, the first service fails with the error:

 

org.apache.sling.testing.mock.osgi.ReferenceViolationException: Unable to inject mandatory reference 'secondService' for class com.mycompany.core.services.impl.FirstServiceImpl : no matching services were found.