Expand my Community achievements bar.

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.