Skip to content

Migrate tests from JUnit 4 to JUnit 5 (parent 4.4)#295

Merged
dvayanu merged 3 commits into
developfrom
feature/junit5-migration
Jun 26, 2026
Merged

Migrate tests from JUnit 4 to JUnit 5 (parent 4.4)#295
dvayanu merged 3 commits into
developfrom
feature/junit5-migration

Conversation

@dvayanu

@dvayanu dvayanu commented Jun 26, 2026

Copy link
Copy Markdown
Member

Summary

The parent was bumped to 4.4, which provides junit-jupiter instead of junit:junit (and drops the transitively-pulled hamcrest). This PR makes that bump and migrates the whole test suite to JUnit 5.

Two commits:

  • updated parent version — parent 4.3 → 4.4
  • Migrate tests from JUnit 4 to JUnit 5 — 103 files

What changed in the migration

  • Imports/annotations: org.junit.*org.junit.jupiter.api.* (@Before/@After/@BeforeClass/@AfterClass/@Ignore → JUnit 5 equivalents, AssertAssertions).
  • Assertion messages moved from the first to the last argument (JUnit 5 ordering). The compiler caught the type-mismatched cases; an additional argument-aware scan caught the all-String cases the compiler accepts silently (e.g. TracerTest).
  • @Test(expected = …)assertThrows(…); dropped an unnecessary @RunWith(MockitoJUnitRunner) (the test only used mock() directly).
  • hamcrest assertThat/matchers rewritten to plain JUnit 5 assertions (hamcrest is no longer on the classpath).
  • Removed the obsolete junit:junit dependency from moskito-webui.

Verification

Full reactor clean install: 271 tests, 0 failures, 0 errors, 12 skipped (the skipped ones are the pre-existing @Ignore, now @Disabled — unchanged behavior).

🤖 Generated with Claude Code

dvayanu and others added 2 commits June 26, 2026 23:45
The parent (4.4) now provides junit-jupiter instead of junit:junit, which
also dropped the transitive hamcrest dependency. Migrate all tests:

- imports/annotations: org.junit.* -> org.junit.jupiter.api.*
  (@Before/@After/@BeforeClass/@AfterClass/@ignore -> JUnit 5 equivalents,
  Assert -> Assertions)
- move assertion messages from first to last argument (JUnit 5 ordering)
- @test(expected=...) -> assertThrows; drop unused @RunWith(MockitoJUnitRunner)
- rewrite hamcrest assertThat/matchers to plain JUnit 5 assertions
- remove obsolete junit:junit dependency from moskito-webui

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project parent to net.anotheria:parent:4.4 and migrates the entire test suite from JUnit 4/Hamcrest to JUnit 5 (Jupiter), aligning test annotations and assertions with the new dependency set provided by the parent.

Changes:

  • Bump parent POM from 4.3 → 4.4.
  • Migrate tests from JUnit 4 → JUnit 5 (org.junit.*org.junit.jupiter.*, @Ignore@Disabled, @BeforeClass/@AfterClass@BeforeAll/@AfterAll, etc.).
  • Remove explicit junit:junit test dependency from moskito-webui (and rewrite Hamcrest assertions to JUnit 5 assertions).

Reviewed changes

Copilot reviewed 104 out of 104 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pom.xml Bumps parent version to 4.4 to use JUnit Jupiter provided by the parent.
moskito-webui/pom.xml Removes explicit JUnit 4 dependency now that parent provides Jupiter.
moskito-webui/src/test/java/net/anotheria/moskito/webui/util/DeepLinkUtilTest.java Migrates test lifecycle annotations and assertions to JUnit 5.
moskito-webui/src/test/java/net/anotheria/moskito/webui/threshold/api/ThresholdAPITest.java Migrates JUnit 4 annotations/assertions to JUnit 5 (@Disabled, @BeforeEach/@AfterEach).
moskito-webui/src/test/java/net/anotheria/moskito/webui/shared/bean/DoubleValueBeanTest.java Migrates @Ignore to @Disabled and switches to Jupiter assertions.
moskito-webui/src/test/java/net/anotheria/moskito/webui/shared/api/filter/MatchersTest.java Migrates to Jupiter @Test and assertions.
moskito-webui/src/test/java/net/anotheria/moskito/webui/producers/api/ProducerAPITest.java Migrates setup/teardown and assertions to JUnit 5.
moskito-webui/src/test/java/net/anotheria/moskito/webui/dashboards/getDashboardTest.java Migrates class and per-test lifecycle annotations to JUnit 5.
moskito-webui/src/test/java/net/anotheria/moskito/webui/dashboards/DashboardsAPITest.java Migrates @BeforeClass/@Before to @BeforeAll/@BeforeEach and assertions.
moskito-webui/src/test/java/net/anotheria/moskito/webui/accumulators/api/GetAccumulatorGraphDataTest.java Migrates lifecycle annotations and assertion message ordering to JUnit 5.
moskito-webui/src/test/java/net/anotheria/moskito/webui/accumulators/api/AccumulatorAPITest.java Migrates ignore/expected-exception patterns and assertion message ordering to JUnit 5.
moskito-webui/src/test/java/net/anotheria/moskito/webui/accumulators/action/TestAccumulatorNormalization.java Migrates JUnit 4 assertions to Jupiter equivalents.
moskito-web/src/test/java/net/anotheria/moskito/web/session/SessionCountProducerTest.java Migrates to Jupiter @Test and assertions.
moskito-web/src/test/java/net/anotheria/moskito/web/session/SessionCountProducerIntervalTest.java Migrates to Jupiter @Test and assertions.
moskito-web/src/test/java/net/anotheria/moskito/web/MoskitoHttpServletTest.java Migrates lifecycle annotations and assertions to JUnit 5; removes JUnit 4 runner usage.
moskito-web/src/test/java/net/anotheria/moskito/web/MoskitoFilterTest.java Migrates to Jupiter assertions.
moskito-web/src/test/java/net/anotheria/moskito/web/filters/UserAgentFilterTest.java Migrates setup and assertions to JUnit 5.
moskito-web/src/test/java/net/anotheria/moskito/web/filters/MethodFilterTest.java Migrates setup and assertions to JUnit 5.
moskito-web/src/test/java/net/anotheria/moskito/web/filters/JSTalkBackFilterTest.java Migrates setup and assertions (incl. message ordering) to JUnit 5.
moskito-web/src/test/java/net/anotheria/moskito/web/filters/DomainFilterTest.java Migrates setup and assertions to JUnit 5.
moskito-integration/moskito-sql/src/test/java/net/anotheria/moskito/sql/callingAspect/InterceptTest.java Migrates lifecycle and assertions to JUnit 5 (@Disabled, @BeforeEach/@AfterEach).
moskito-integration/moskito-sql/src/test/java/net/anotheria/moskito/sql/callingAspect/ConnectionCallAspectTest.java Migrates setup and assertions to JUnit 5.
moskito-integration/moskito-ehcache/src/test/java/net/anotheria/moskito/integration/ehcache/MonitoredEhcacheTest.java Migrates lifecycle annotations and disables unstable test via @Disabled.
moskito-extensions/moskito-notification-providers/src/test/java/notificationtemplate/MailTemplateTest.java Migrates to Jupiter @Test and updates disabled-comment marker.
moskito-extensions/moskito-notification-providers/src/test/java/net/anotheria/moskito/extensions/notificationproviders/ManualTestEmailProviderTest.java Migrates @Ignore to @Disabled.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/PluginTypeRegistryTest.java Migrates assertions and imports to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/parser/StatusDataTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/parser/NginxStubStatusParserTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/parser/ApacheStatusParserTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/metric/NginxMetricsTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/metric/GenericMetricsTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/extensions/monitoring/metric/ApacheMetricsTest.java Migrates assertions to JUnit 5.
moskito-extensions/moskito-monitoring-plugin/src/test/java/net/anotheria/moskito/core/stats/impl/SkipFirstDiffLongValueHolderTest.java Migrates ignore reason to @Disabled and assertions to Jupiter.
moskito-extensions/moskito-mongodb/src/main/test/java/net/anotheria/moskito/extension/mongodb/MongodbMonitorTest.java Migrates lifecycle and assertions to JUnit 5.
moskito-extensions/moskito-additional-producers/src/test/java/net/anotheria/moskito/extensions/producers/RollingOnDemandStatsProducerTest.java Migrates assertions to JUnit 5 and message ordering.
moskito-core/src/test/java/net/anotheria/moskito/core/util/threadhistory/ThreadHistoryUtilityTest.java Migrates @Ignore to @Disabled and lifecycle to JUnit 5.
moskito-core/src/test/java/net/anotheria/moskito/core/util/storage/StorageTest.java Migrates assertions to JUnit 5 (message argument order).
moskito-core/src/test/java/net/anotheria/moskito/core/util/session/SessionCountStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/util/MBeanUtilTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/util/annotation/AnnotationUtilsTest.java Replaces Hamcrest assertions with Jupiter assertions.
moskito-core/src/test/java/net/anotheria/moskito/core/tracer/TracerTest.java Migrates assertions to Jupiter and updates message ordering.
moskito-core/src/test/java/net/anotheria/moskito/core/tracer/ShrinkingStrategyTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/threshold/ThresholdStatusTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/threshold/ThresholdConfigTest.java Migrates lifecycle and assertions to JUnit 5.
moskito-core/src/test/java/net/anotheria/moskito/core/threshold/GuardsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/threshold/FindThresholdTest.java Migrates class lifecycle annotations to JUnit 5.
moskito-core/src/test/java/net/anotheria/moskito/core/threshold/alerts/AlertDispatcherTest.java Migrates teardown annotation to @AfterEach.
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/NegativeCurrentRequestsTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/LongValueHolderTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/IntValueHolderTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/IntervalNameParserTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/IntervalImplTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/stats/impl/DiffLongValueHolderTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/snapshot/SnapshotRepositoryTest.java Migrates setup to @BeforeEach and assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/snapshot/SnapshotCreatorTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/registry/RegistryMemoryLeakTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/registry/ProducerRegistryTest.java Migrates lifecycle annotations and assertions to JUnit 5.
moskito-core/src/test/java/net/anotheria/moskito/core/registry/ProducerReferenceTest.java Rewrites @Test(expected=...) to assertThrows and migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/registry/filters/FiltersTest.java Migrates setup annotation and assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ThreadStateStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ThreadCountStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ServiceStatsSimpleTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ServiceStatsParallelTestOld.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ServiceStatsParallelTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/ServiceStatsCallHandlerTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/RequestOrientedStatsTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/QueueStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/GlobalRequestProcessorStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/GCStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/predefined/CacheStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/logging/StatsLoggerTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/journey/JourneyManagerImplTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/journey/JourneyManagerFactoryTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/exceptions/ExceptionPassingTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/errorhandling/ErrorCatcherTest.java Migrates setup annotation and assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/errorhandling/BuiltInErrorProducerTest.java Migrates setup annotations and assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/entrypoint/PastMeasurementChainNodeTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/dynamic/ProxyUtilsTest.java Removes Hamcrest usage in favor of Jupiter assertions.
moskito-core/src/test/java/net/anotheria/moskito/core/dynamic/OnDemandStatsProducerTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/dynamic/OnDemandStatsProducerListenerTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/dynamic/EntryCountLimitedOnDemandStatsProducerTest.java Migrates assertions to Jupiter (message ordering).
moskito-core/src/test/java/net/anotheria/moskito/core/decorators/value/DoubleValueAOTest.java Removes Hamcrest matcher and uses Jupiter assertions.
moskito-core/src/test/java/net/anotheria/moskito/core/decorators/DecoratorRegistryTest.java Migrates lifecycle annotations and assertions (message ordering) to JUnit 5.
moskito-core/src/test/java/net/anotheria/moskito/core/decorators/CreateDecoratorsTest.java Migrates @Test import to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/counter/MaleFemaleStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/counter/CounterStatsTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/context/MoSKitoContextTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/config/dashboards/DashboardConfigTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/config/dashboards/ChartConfigTest.java Rewrites expected-exception to assertThrows and uses Jupiter assertions.
moskito-core/src/test/java/net/anotheria/moskito/core/command/CommandControllerTest.java Migrates @BeforeClass to @BeforeAll.
moskito-core/src/test/java/net/anotheria/moskito/core/blueprint/BlueprintWithCalcTest.java Migrates assertions to Jupiter.
moskito-core/src/test/java/net/anotheria/moskito/core/accumulation/AutoAccumulationDefinitionTest.java Migrates from Assert to Jupiter Assertions.
moskito-core/src/test/java/net/anotheria/moskito/core/accumulation/AccumulatorTest.java Migrates assertions to Jupiter.
moskito-aop/src/test/java/net/anotheria/moskito/aop/tagging/TaggingAnnotationTest.java Migrates assertions to Jupiter.
moskito-aop/src/test/java/net/anotheria/moskito/aop/MonitorWithSubClassesTest.java Replaces Hamcrest assertions with Jupiter assertions and migrates lifecycle annotations.
moskito-aop/src/test/java/net/anotheria/moskito/aop/monitorcalls/ininterface/onmethod/MonitorCallsTest.java Migrates ignore/disabled handling and assertions to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/monitorcalls/ininterface/oninterface/MonitorCallsTest.java Migrates ignore/disabled handling and assertions to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/monitorcalls/clazz/onmethod/MonitorCallsTest.java Migrates ignore/disabled handling and assertions to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/monitorcalls/clazz/onclass/MonitorCallsTest.java Migrates assertions to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/DontMonitorAnnotationTest.java Migrates assertions to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/annotation_inheritance/AnnotationInheritanceTest.java Replaces Hamcrest assertions with Jupiter assertions.
moskito-aop/src/test/java/net/anotheria/moskito/aop/AnnotatedCallTest.java Migrates assertions to JUnit 5 (message ordering).
moskito-aop/src/test/java/net/anotheria/moskito/aop/AccumulateWithSubClassesTest.java Migrates lifecycle/disabled annotations and assertion message ordering to JUnit 5.
moskito-aop/src/test/java/net/anotheria/moskito/aop/AccumulatesCallTest.java Migrates class lifecycle annotations to JUnit 5.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 81 to 83
assertEquals(aRepository.getAccumulators().size(), 0);
createFakeAccumulators(new String[]{"a1", "a2", "a3", "a4", "a5", "a6", "a7"});
assertEquals(aRepository.getAccumulators().size(), 7);
Comment thread moskito-web/src/test/java/net/anotheria/moskito/web/MoskitoHttpServletTest.java Outdated
Comment thread moskito-web/src/test/java/net/anotheria/moskito/web/MoskitoHttpServletTest.java Outdated
Pre-existing nits surfaced during review of the JUnit 5 migration; all
are behavior-neutral (assertEquals is symmetric, so only failure-message
labels change):

- put expected before actual in 4 assertions (GetAccumulatorGraphDataTest,
  StatsLoggerTest, MoskitoHttpServletTest x2)
- fix "accumulatd" -> "accumulated" typo in an assertion message

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dvayanu dvayanu merged commit 79c3444 into develop Jun 26, 2026
5 checks passed
@dvayanu dvayanu deleted the feature/junit5-migration branch June 26, 2026 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants