[
https://issues.apache.org/jira/browse/IGNITE-10927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Ignatenko updated IGNITE-10927:
------------------------------------
Description:
{{JUnit3TestLegacySupport}} currently inherits deprecated
{{junit.framework.Assert}}. This was done only in order to minimize risky code
changes when tests were migrating from Junit 3, after {{GridAbstractTest}} has
dropped inheriting {{junit.framework.TestCase}}.
Now that migration is over it is less risky to cleanup project from deprecated
assert methods and drop the harmful inheritance. In order to make this smoother
and minimize amount of test changes, after inheritance is dropped,
{{JUnit3TestLegacySupport}} should be extended with a set of "temporary patch"
methods that would delegate most popular assertions used by subclasses to
respective methods of {{org.junit.Assert}}.
Mentioned temporary patch methods, in turn, should respective {{2deprecation}}
notices in javadocs that would encourage developers to (safely and gradually)
change them to direct invocations and static imports of respective Assert
methods instead of using those inherited from superclass. These patch methods
should be declared {{protected final}} or {{protected static}}, in order to
minimize their applicability and prevent them spreading more than intended. (as
a side note, experimenting has shown that use of {{@Deprecated}} annotation is
not feasible as it deprives developers an option to use static imports)
was:
{{JUnit3TestLegacySupport}} currently inherits deprecated
{{junit.framework.Assert}}. This was done only in order to minimize risky code
changes when tests were migrating from Junit 3, after {{GridAbstractTest}} has
dropped inheriting {{junit.framework.TestCase}}.
Now that migration is over it is less risky to cleanup project from deprecated
assert methods and drop the harmful inheritance. In order to make this smoother
and minimize amount of test changes, after inheritance is dropped,
{{JUnit3TestLegacySupport}} should be extended with a set of "temporary patch"
methods that would delegate most popular assertions used by subclasses to
respective methods of {{org.junit.Assert}}.
Mentioned temporary patch methods, in turn, should get {{@Deprecated}}
annotation and respective {{2deprecation}} noticed in javadocs that would
encourage developers to (safely and gradually) change them to direct
invocations and static imports of respective Assert methods instead of using
those inherited from superclass. These patch methods should be declared
{{protected final}} or {{protected static}}, in order to minimize their
applicability and prevent them spreading more than intended.
> Relieve JUnit3TestLegacySupport from inheriting deprecated
> junit.framework.Assert (follow-up to IGNITE-10177)
> -------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-10927
> URL: https://issues.apache.org/jira/browse/IGNITE-10927
> Project: Ignite
> Issue Type: Sub-task
> Affects Versions: 2.7
> Reporter: Oleg Ignatenko
> Assignee: Oleg Ignatenko
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {{JUnit3TestLegacySupport}} currently inherits deprecated
> {{junit.framework.Assert}}. This was done only in order to minimize risky
> code changes when tests were migrating from Junit 3, after
> {{GridAbstractTest}} has dropped inheriting {{junit.framework.TestCase}}.
> Now that migration is over it is less risky to cleanup project from
> deprecated assert methods and drop the harmful inheritance. In order to make
> this smoother and minimize amount of test changes, after inheritance is
> dropped, {{JUnit3TestLegacySupport}} should be extended with a set of
> "temporary patch" methods that would delegate most popular assertions used by
> subclasses to respective methods of {{org.junit.Assert}}.
> Mentioned temporary patch methods, in turn, should respective
> {{2deprecation}} notices in javadocs that would encourage developers to
> (safely and gradually) change them to direct invocations and static imports
> of respective Assert methods instead of using those inherited from
> superclass. These patch methods should be declared {{protected final}} or
> {{protected static}}, in order to minimize their applicability and prevent
> them spreading more than intended. (as a side note, experimenting has shown
> that use of {{@Deprecated}} annotation is not feasible as it deprives
> developers an option to use static imports)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)