[ 
https://issues.apache.org/jira/browse/SLING-12278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839626#comment-17839626
 ] 

Stefan Seifert edited comment on SLING-12278 at 4/22/24 11:51 AM:
------------------------------------------------------------------

the way the current junit 5 implemention is done in sling-mock, osgi-mock and 
aem-mock dates back to the time of JUnit 5.0 ([PR 
#5|https://github.com/wcm-io/wcm-io-testing/pull/5]), and i've never 
investigated much further if this is nowadays still the best way to do an junit 
5 extension. it seems the programmatic extension registration was introduced in 
junit 5.1.

i currently cannot oversee how much benefit a switch or additional support of 
programmatic extension registration would bring - in any case it would be a lot 
of work to make sure it all works as expected, and we cannot remove the current 
way to register it for backwards compatibility.

so for now, i will only extend the documentation to make sure context objects 
are not created e.g. in BeforeEach/BeforeAll methods.


was (Author: sseif...@pro-vision.de):
the way the current junit 5 implemention is done in sling-mock, osgi-mock and 
aem-mock dates back to the time of JUnit 5.0 ([PR 
#5|[https://github.com/wcm-io/wcm-io-testing/pull/5]),] and i've never 
investigated much further if this is nowadays still the best way to do an junit 
5 extension. it seems the programmatic extension registration was introduced in 
junit 5.1.

i currently cannot oversee how much benefit a switch or additional support of 
programmatic extension registration would bring - in any case it would be a lot 
of work to make sure it all works as expected, and we cannot remove the current 
way to register it for backwards compatibility.

so for now, i will only extend the documentation to make sure context objects 
are not created e.g. in BeforeEach/BeforeAll methods.

> Improve handling of late instantiated context in 
> SlingContextExtension/OsgiContextExtension
> -------------------------------------------------------------------------------------------
>
>                 Key: SLING-12278
>                 URL: https://issues.apache.org/jira/browse/SLING-12278
>             Project: Sling
>          Issue Type: Improvement
>          Components: Testing
>    Affects Versions: Testing OSGi Mock 3.4.2, Testing Sling Mock 3.5.0
>            Reporter: Konrad Windszus
>            Priority: Major
>
> Currently neither in 
> https://sling.apache.org/documentation/development/osgi-mock.html#junit-5-osgi-context-junit-extension
>  nor in 
> https://sling.apache.org/documentation/development/sling-mock.html#junit-5-sling-context-junit-extension
>  it is mentioned that the context must not be instantiated in {{@BeforeAll}} 
> or {{@BeforeEach}} as at that point in time the extension has already 
> instantiated another context. Those two contexts may lead to subtle issues 
> (for example if resources are only added in the second context). For a 
> concrete example look at 
> https://github.com/wcm-io/io.wcm.testing.aem-mock/issues/37.
> In the best case the JUnit5 extension never creates a context (but only uses 
> the existing instance) or at least creation should be deferred until the 
> Before methods have been executed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to