From 3e62fe0e46853749b390474a61d8de4f7a67701a Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Tue, 23 Feb 2021 18:55:47 +0100
Subject: [PATCH] Cleanup clearAllMocks() and unmockAll() usage (DEV) #2423

* Cleanup clearAllMocks() and unmockAll() usage.

* If we call `MockKAnnotations.init(this)`, in "Before" then we don't need to clear the mocks in each "After" call, as the mocks will be replaced by new ones.

* Fix textreplace error.

* Split up BaseTest class for unit and instrumentation tests.

* Move  BaseTest and BaseTestInstrumentation to the right packages

* Update BaseTestInstrumentation.kt

* Move it back

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
Co-authored-by: Mohamed Metwalli <Mohamed.Metwalli@sap.com>
---
 .../ContactDiaryDatabaseMigrationTest.kt      |  4 +--
 .../storage/ContactDiaryDatabaseTest.kt       |  4 +--
 .../RiskResultDatabaseMigrationTest.kt        |  4 +--
 .../ContactDiaryDayFragmentTest.kt            |  2 --
 .../ContactDiaryEditLocationsFragmentTest.kt  |  6 ++---
 .../ContactDiaryEditPersonsFragmentTest.kt    |  6 ++---
 .../ContactDiaryOnboardingFragmentTest.kt     |  4 +--
 .../ContactDiaryOverviewFragmentTest.kt       |  2 --
 .../ui/main/home/HomeFragmentTest.kt          |  2 --
 .../OnboardingAnalyticsFragmentTest.kt        |  2 --
 ...ardingDeltaInteroperabilityFragmentTest.kt |  4 +--
 .../OnboardingNotificationsFragmentTest.kt    |  4 +--
 .../OnboardingPrivacyFragmentTest.kt          |  4 +--
 .../onboarding/OnboardingTestFragmentTest.kt  |  6 ++---
 .../OnboardingTracingFragmentTest.kt          |  4 +--
 .../SubmissionConsentFragmentTest.kt          |  2 --
 .../SubmissionContactFragmentTest.kt          |  2 --
 .../SubmissionDispatcherFragmentTest.kt       |  4 +--
 .../SubmissionQrCodeScanFragmentTest.kt       |  2 --
 .../SubmissionSymptomCalendarFragmentTest.kt  |  4 +--
 .../SubmissionSymptomIntroFragmentTest.kt     |  4 +--
 .../submission/SubmissionTanFragmentTest.kt   |  4 +--
 ...bmissionTestResultAvailableFragmentTest.kt |  2 --
 ...ssionTestResultConsentGivenFragmentTest.kt |  2 --
 .../SubmissionTestResultFragmentTest.kt       |  2 --
 ...ubmissionTestResultNegativeFragmentTest.kt |  2 --
 ...ionTestResultNoConsentGivenFragmentTest.kt |  2 --
 .../SubmissionYourConsentFragmentTest.kt      |  2 --
 .../util/security/DBPasswordTest.kt           | 10 ++-----
 ...DiagnosisKeyRetrievalPeriodicWorkerTest.kt |  6 ++---
 .../java/testhelpers/BaseUITest.kt            |  2 +-
 .../appconfig/AppConfigModuleTest.kt          |  2 --
 .../appconfig/AppConfigProviderTest.kt        |  2 --
 .../appconfig/internal/AppConfigSourceTest.kt |  7 -----
 .../appconfig/mapping/CWAConfigMapperTest.kt  |  7 -----
 .../appconfig/mapping/ConfigParserTest.kt     |  7 -----
 .../fallback/DefaultAppConfigSanityCheck.kt   |  7 -----
 .../fallback/DefaultAppConfigSourceTest.kt    |  2 --
 .../sources/local/AppConfigStorageTest.kt     |  2 --
 .../sources/local/LocalAppConfigSourceTest.kt |  2 --
 .../sources/remote/AppConfigApiTest.kt        |  2 --
 .../sources/remote/AppConfigServerTest.kt     |  2 --
 .../remote/RemoteAppConfigSourceTest.kt       |  2 --
 .../censors/DiaryLocationCensorTest.kt        |  2 --
 .../censors/DiaryPersonCensorTest.kt          |  2 --
 .../bugreporting/censors/QRCodeCensorTest.kt  |  2 --
 .../censors/RegistrationTokenCensorTest.kt    |  7 -----
 .../bugreporting/debuglog/DebugLoggerTest.kt  |  2 --
 .../retention/ContactDiaryCleanTaskTest.kt    |  7 -----
 .../retention/ContactDiaryCleanWorkerTest.kt  |  7 -----
 ...ontactDiaryDataRetentionCalculationTest.kt |  7 -----
 .../retention/ContactDiaryWorkBuilderTest.kt  |  7 -----
 .../ContactDiaryWorkSchedulerTest.kt          |  7 -----
 .../datadonation/analytics/AnalyticsTest.kt   |  7 -----
 .../analytics/common/DistrictsTest.kt         |  7 -----
 .../modules/ExposureRiskMetadataDonorTest.kt  |  7 -----
 .../clientmetadata/ClientMetadataDonorTest.kt |  7 -----
 .../server/DataDonationAnalyticsApiV1Test.kt  |  2 --
 .../server/DataDonationAnalyticsServerTest.kt |  2 --
 .../analytics/ui/AnalyticsSettingsTest.kt     |  7 -----
 .../input/AnalyticsUserInputViewModelTest.kt  |  7 -----
 .../safetynet/AttestationContainerTest.kt     |  7 -----
 .../safetynet/CWASafetyNetTest.kt             |  7 -----
 .../safetynet/SafetyNetClientWrapperTest.kt   |  7 -----
 .../datadonation/storage/OTPRepositoryTest.kt |  7 -----
 .../datadonation/survey/SurveySettingsTest.kt |  7 -----
 .../survey/SurveyUrlProviderTest.kt           |  7 -----
 .../survey/server/SurveyApiV1Test.kt          |  2 --
 .../survey/server/SurveyServerTest.kt         |  7 -----
 .../DeadmanNotificationOneTimeWorkerTest.kt   |  7 -----
 .../DeadmanNotificationPeriodicWorkerTest.kt  |  7 -----
 .../DeadmanNotificationSchedulerTest.kt       |  7 -----
 .../deadman/DeadmanNotificationSenderTest.kt  |  7 -----
 .../DeadmanNotificationTimeCalculationTest.kt |  7 -----
 .../DeadmanNotificationWorkBuilderTest.kt     |  7 -----
 .../DownloadDiagnosisKeysSettingsTest.kt      |  7 -----
 .../download/BaseKeyPackageSyncToolTest.kt    |  2 --
 .../download/CommonSyncToolTest.kt            |  2 --
 .../download/DownloadDiagnosisKeysTaskTest.kt |  7 -----
 .../download/KeyDownloadToolTest.kt           |  2 --
 .../download/KeyPackageSyncToolTest.kt        |  2 --
 .../server/DiagnosisKeyServerTest.kt          |  2 --
 .../storage/KeyCacheRepositoryTest.kt         |  2 --
 .../legacy/LegacyKeyCacheMigrationTest.kt     |  2 --
 .../environment/EnvironmentSetupTest.kt       |  7 -----
 .../http/playbook/DefaultPlaybookTest.kt      |  7 -----
 .../main/MainActivityViewModelTest.kt         |  7 -----
 .../main/home/HomeFragmentViewModelTest.kt    |  9 +------
 .../rki/coronawarnapp/nearby/ENFClientTest.kt |  7 -----
 .../DefaultExposureDetectionTrackerTest.kt    |  7 -----
 .../ExposureDetectionTrackerStorageTest.kt    |  2 --
 .../TrackedExposureDetectionTest.kt           |  7 -----
 .../DefaultDiagnosisKeyProviderTest.kt        |  7 -----
 .../SubmissionQuotaTest.kt                    |  7 -----
 .../DefaultDiagnosisKeysDataMapperTest.kt     |  7 -----
 .../DefaultTEKHistoryProviderTest.kt          |  7 -----
 .../tracing/DefaultTracingStatusTest.kt       |  7 -----
 .../modules/version/DefaultENFVersionTest.kt  |  7 -----
 .../windows/ExposureWindowsCalculationTest.kt |  7 -----
 ...tResultAvailableNotificationServiceTest.kt | 10 ++-----
 .../ExposureStateUpdateReceiverTest.kt        |  7 -----
 .../risk/RiskLevelChangeDetectorTest.kt       |  7 -----
 .../coronawarnapp/risk/RiskLevelTaskTest.kt   |  2 +-
 .../coronawarnapp/risk/TimeVariablesTest.kt   |  3 ++-
 .../risk/storage/BaseRiskLevelStorageTest.kt  |  7 -----
 .../legacy/RiskLevelResultMigratorTest.kt     |  7 -----
 .../service/submission/ScanResultTest.kt      |  3 ++-
 .../submission/SubmissionServiceTest.kt       | 10 ++-----
 .../statistics/StatisticsModuleTest.kt        |  2 --
 .../statistics/source/StatisticsAPIV1Test.kt  |  2 --
 .../statistics/source/StatisticsParserTest.kt |  7 -----
 .../source/StatisticsProviderTest.kt          |  7 -----
 .../statistics/source/StatisticsServerTest.kt |  7 -----
 .../StatisticsNumberValueFormatterTest.kt     | 10 ++-----
 .../storage/DeviceStorageTest.kt              |  3 ---
 .../storage/SubmissionRepositoryTest.kt       |  3 ++-
 .../coronawarnapp/storage/TestSettingsTest.kt |  7 -----
 .../tracing/TracingIntervalRepositoryTest.kt  | 10 ++-----
 .../submission/SubmissionModuleTest.kt        |  2 --
 .../submission/auto/AutoSubmissionTest.kt     |  7 -----
 .../submission/auto/SubmissionWorkerTest.kt   |  7 -----
 .../submission/server/SubmissionApiV1Test.kt  |  2 --
 .../submission/server/SubmissionServerTest.kt |  2 --
 ...ubmissionTestResultPendingViewModelTest.kt |  7 -----
 .../coronawarnapp/task/TaskControllerTest.kt  |  2 --
 .../rki/coronawarnapp/task/TaskStateTest.kt   |  7 -----
 .../tracing/GeneralTracingStatusTest.kt       |  7 -----
 .../tracing/states/IncreasedRiskTest.kt       |  7 -----
 .../tracing/states/LowRiskTest.kt             |  7 -----
 .../details/TracingDetailsItemProviderTest.kt |  7 -----
 .../ui/details/TracingDetailsStateTest.kt     |  7 -----
 .../homecards/SubmissionStateProviderTest.kt  |  7 -----
 .../ui/settings/TracingSettingsStateTest.kt   |  7 -----
 .../ui/statusbar/TracingHeaderStateTest.kt    |  7 -----
 .../ui/calendar/CalendarCalculationTest.kt    |  7 -----
 .../launcher/LauncherActivityViewModelTest.kt |  3 ++-
 .../ui/onboarding/EasyLanguageLinkTest.kt     |  7 -----
 ...tificationSettingsFragmentViewModelTest.kt |  7 -----
 .../NotificationSettingsStateTest.kt          |  7 -----
 .../notification/NotificationsSettingsTest.kt |  7 -----
 .../start/SettingsBackgroundStateTest.kt      |  7 -----
 .../start/SettingsFragmentViewModelTest.kt    |  7 -----
 .../start/SettingsNotificationStateTest.kt    |  7 -----
 .../start/SettingsTracingStateTest.kt         |  7 -----
 .../SubmissionSymptomCalendarViewModelTest.kt |  7 -----
 ...missionSymptomIntroductionViewModelTest.kt |  7 -----
 ...missionTestResultAvailableViewModelTest.kt |  7 -----
 ...itiveOtherWarningNoConsentViewModelTest.kt |  7 -----
 .../SubmissionYourConsentViewModelTest.kt     |  7 -----
 .../coronawarnapp/update/UpdateCheckerTest.kt |  7 -----
 .../util/BackgroundModeStatusTest.kt          |  7 -----
 .../util/CameraPermissionHelperTest.kt        | 10 ++-----
 .../util/ConnectivityHelperTest.kt            | 10 ++-----
 .../util/DataBindingAdaptersTest.kt           |  3 ++-
 .../util/ExternalActionHelperTest.kt          | 10 ++-----
 .../coronawarnapp/util/HashExtensionsTest.kt  |  3 ---
 .../coronawarnapp/util/RetryMechanismTest.kt  |  7 -----
 .../util/TimeAndDateExtensionsTest.kt         |  7 -----
 .../util/bluetooth/BluetoothProviderTest.kt   |  7 -----
 .../util/device/ForegroundStateTest.kt        |  7 -----
 .../util/formatter/FormatterHelperTest.kt     | 10 ++-----
 .../FormatterStatisticsHelperTest.kt          | 10 ++-----
 .../FormatterSubmissionHelperTest.kt          | 10 ++-----
 .../util/location/LocationProviderTest.kt     |  7 -----
 .../util/network/NetworkStateProviderTest.kt  |  7 -----
 .../EncryptedPreferencesFactoryTest.kt        |  7 -----
 .../util/security/EncryptionResetToolTest.kt  |  3 ---
 .../util/security/SecurityHelperTest.kt       |  7 -----
 .../util/worker/CWAWorkerFactoryTest.kt       |  7 -----
 .../verification/VerificationModuleTest.kt    |  2 --
 .../server/VerificationApiV1Test.kt           |  2 --
 .../server/VerificationServerTest.kt          |  2 --
 .../src/test/java/testhelpers/BaseTest.kt     | 27 +++++++++++++++++++
 .../ExposureWindowProviderTest.kt             |  7 -----
 .../storage/DefaultRiskLevelStorageTest.kt    |  7 -----
 .../ExposureWindowProviderTest.kt             | 11 ++------
 .../api/ui/TestForApiFragmentViewModelTest.kt | 11 ++------
 .../ui/DebugOptionsFragmentViewModelTest.kt   | 11 ++------
 .../storage/DefaultRiskLevelStorageTest.kt    | 11 ++------
 .../testShared/java/testhelpers/BaseTest.kt   | 12 ---------
 .../testhelpers/BaseTestInstrumentation.kt    | 27 +++++++++++++++++++
 181 files changed, 121 insertions(+), 935 deletions(-)
 create mode 100644 Corona-Warn-App/src/test/java/testhelpers/BaseTest.kt
 delete mode 100644 Corona-Warn-App/src/testShared/java/testhelpers/BaseTest.kt
 create mode 100644 Corona-Warn-App/src/testShared/java/testhelpers/BaseTestInstrumentation.kt

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseMigrationTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseMigrationTest.kt
index bd23cf846..c8f85180b 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseMigrationTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseMigrationTest.kt
@@ -21,11 +21,11 @@ import org.joda.time.LocalDate
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 import java.io.IOException
 
 @RunWith(AndroidJUnit4::class)
-class ContactDiaryDatabaseMigrationTest : BaseTest() {
+class ContactDiaryDatabaseMigrationTest : BaseTestInstrumentation() {
     private val DB_NAME = "contactdiary_migration_test.db"
 
     @get:Rule
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseTest.kt
index 6853d1150..95c5c0442 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/contactdiary/storage/ContactDiaryDatabaseTest.kt
@@ -19,10 +19,10 @@ import org.joda.time.LocalDate
 import org.junit.After
 import org.junit.Test
 import org.junit.runner.RunWith
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 
 @RunWith(AndroidJUnit4::class)
-class ContactDiaryDatabaseTest : BaseTest() {
+class ContactDiaryDatabaseTest : BaseTestInstrumentation() {
 
     // TestData
     private val date = LocalDate.now()
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt
index 730112da5..3b699ab53 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt
@@ -21,12 +21,12 @@ import org.joda.time.Instant
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 import timber.log.Timber
 import java.io.IOException
 
 @RunWith(AndroidJUnit4::class)
-class RiskResultDatabaseMigrationTest : BaseTest() {
+class RiskResultDatabaseMigrationTest : BaseTestInstrumentation() {
     private val DB_NAME = "riskresults_migration_test.db"
 
     @get:Rule
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryDayFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryDayFragmentTest.kt
index 578c99ae6..ae11a6cce 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryDayFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryDayFragmentTest.kt
@@ -24,7 +24,6 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.joda.time.LocalDate
 import org.junit.After
 import org.junit.Before
@@ -78,7 +77,6 @@ class ContactDiaryDayFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditLocationsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditLocationsFragmentTest.kt
index ad260c4e9..195824d42 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditLocationsFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditLocationsFragmentTest.kt
@@ -12,19 +12,18 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -57,9 +56,8 @@ class ContactDiaryEditLocationsFragmentTest : BaseUITest() {
     }
 
     @After
-    fun tearDown() {
+    fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditPersonsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditPersonsFragmentTest.kt
index c05ad05c9..1f0440d76 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditPersonsFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryEditPersonsFragmentTest.kt
@@ -12,19 +12,18 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -57,9 +56,8 @@ class ContactDiaryEditPersonsFragmentTest : BaseUITest() {
     }
 
     @After
-    fun tearDown() {
+    fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOnboardingFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOnboardingFragmentTest.kt
index 5614d8687..d1e4a35c6 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOnboardingFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOnboardingFragmentTest.kt
@@ -7,18 +7,17 @@ import de.rki.coronawarnapp.contactdiary.ui.onboarding.ContactDiaryOnboardingFra
 import de.rki.coronawarnapp.contactdiary.ui.onboarding.ContactDiaryOnboardingFragmentArgs
 import de.rki.coronawarnapp.contactdiary.ui.onboarding.ContactDiaryOnboardingFragmentViewModel
 import io.mockk.MockKAnnotations
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -49,7 +48,6 @@ class ContactDiaryOnboardingFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOverviewFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOverviewFragmentTest.kt
index cc87948f9..382ae5d43 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOverviewFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/contactdiary/ContactDiaryOverviewFragmentTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.task.TaskController
 import io.mockk.MockKAnnotations
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
@@ -51,7 +50,6 @@ class ContactDiaryOverviewFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
index 56559565e..83a01aaba 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
@@ -24,7 +24,6 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import io.mockk.verify
 import org.junit.After
 import org.junit.Before
@@ -77,7 +76,6 @@ class HomeFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingAnalyticsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingAnalyticsFragmentTest.kt
index c6d4cd2f7..eaf88daf0 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingAnalyticsFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingAnalyticsFragmentTest.kt
@@ -13,7 +13,6 @@ import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
@@ -82,7 +81,6 @@ class OnboardingAnalyticsFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
index cca410b3d..0b32b217d 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingDeltaInteroperabilityFragmentTest.kt
@@ -6,19 +6,18 @@ import dagger.android.ContributesAndroidInjector
 import de.rki.coronawarnapp.storage.interoperability.InteroperabilityRepository
 import io.mockk.MockKAnnotations
 import io.mockk.impl.annotations.MockK
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -51,7 +50,6 @@ class OnboardingDeltaInteroperabilityFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
index 8e057638a..1954b667c 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragmentTest.kt
@@ -3,18 +3,17 @@ package de.rki.coronawarnapp.ui.onboarding
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -39,7 +38,6 @@ class OnboardingNotificationsFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
index 9963c9d57..96af67c85 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt
@@ -3,18 +3,17 @@ package de.rki.coronawarnapp.ui.onboarding
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -39,7 +38,6 @@ class OnboardingPrivacyFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
index 3feb9d962..3d07dec0f 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTestFragmentTest.kt
@@ -3,7 +3,6 @@ package de.rki.coronawarnapp.ui.onboarding
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -12,10 +11,10 @@ import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
+import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
-import tools.fastlane.screengrab.locale.LocaleTestRule
 import testhelpers.takeScreenshot
-import testhelpers.launchFragment2
+import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
 class OnboardingTestFragmentTest : BaseUITest() {
@@ -39,7 +38,6 @@ class OnboardingTestFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
index 8116f9a85..7eeb02ee3 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragmentTest.kt
@@ -11,7 +11,6 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -19,12 +18,12 @@ import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -65,7 +64,6 @@ class OnboardingTracingFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionConsentFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionConsentFragmentTest.kt
index 3722ad6f6..0fde6ecaf 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionConsentFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionConsentFragmentTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.ui.submission.qrcode.consent.SubmissionConsentViewMo
 import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -62,7 +61,6 @@ class SubmissionConsentFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
index 703f42fad..2fc4006c2 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
@@ -14,7 +14,6 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.ui.submission.fragment.SubmissionContactFragment
 import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionContactViewModel
 import io.mockk.MockKAnnotations
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -53,7 +52,6 @@ class SubmissionContactFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragmentTest.kt
index bce66aec8..a38a450fb 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionDispatcherFragmentTest.kt
@@ -15,7 +15,6 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.ui.submission.fragment.SubmissionDispatcherFragment
 import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionDispatcherViewModel
 import io.mockk.MockKAnnotations
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -24,10 +23,10 @@ import org.junit.runner.RunWith
 import testhelpers.BaseUITest
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
-import testhelpers.takeScreenshot
 import testhelpers.captureScreenshot
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -61,7 +60,6 @@ class SubmissionDispatcherFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionQrCodeScanFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionQrCodeScanFragmentTest.kt
index 95fa42138..06ab62aa3 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionQrCodeScanFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionQrCodeScanFragmentTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.ui.submission.qrcode.scan.SubmissionQRCodeScanFragme
 import de.rki.coronawarnapp.ui.submission.qrcode.scan.SubmissionQRCodeScanViewModel
 import io.mockk.MockKAnnotations
 import io.mockk.impl.annotations.MockK
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
@@ -33,7 +32,6 @@ class SubmissionQrCodeScanFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomCalendarFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomCalendarFragmentTest.kt
index d9f8712c0..943df7ec9 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomCalendarFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomCalendarFragmentTest.kt
@@ -18,18 +18,17 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.captureScreenshot
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -71,7 +70,6 @@ class SubmissionSymptomCalendarFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomIntroFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomIntroFragmentTest.kt
index 1480a9211..9e86f9de0 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomIntroFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionSymptomIntroFragmentTest.kt
@@ -18,20 +18,19 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.captureScreenshot
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -72,7 +71,6 @@ class SubmissionSymptomIntroFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragmentTest.kt
index 0d11b6d32..4e5d114ea 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTanFragmentTest.kt
@@ -14,19 +14,18 @@ import de.rki.coronawarnapp.ui.submission.tan.SubmissionTanFragment
 import de.rki.coronawarnapp.ui.submission.tan.SubmissionTanViewModel
 import io.mockk.MockKAnnotations
 import io.mockk.impl.annotations.MockK
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import testhelpers.BaseUITest
-import testhelpers.takeScreenshot
 import testhelpers.Screenshot
 import testhelpers.SystemUIDemoModeRule
 import testhelpers.TestDispatcherProvider
 import testhelpers.launchFragment2
 import testhelpers.launchFragmentInContainer2
+import testhelpers.takeScreenshot
 import tools.fastlane.screengrab.locale.LocaleTestRule
 
 @RunWith(AndroidJUnit4::class)
@@ -60,7 +59,6 @@ class SubmissionTanFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultAvailableFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultAvailableFragmentTest.kt
index c099702b2..82b41af38 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultAvailableFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultAvailableFragmentTest.kt
@@ -16,7 +16,6 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -73,7 +72,6 @@ class SubmissionTestResultAvailableFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
index b195f8d39..2ddeb4611 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultConsentGivenFragmentTest.kt
@@ -24,7 +24,6 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -84,7 +83,6 @@ class SubmissionTestResultConsentGivenFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultFragmentTest.kt
index 26121cd22..dbc5de25e 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultFragmentTest.kt
@@ -21,7 +21,6 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -88,7 +87,6 @@ class SubmissionTestResultFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNegativeFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNegativeFragmentTest.kt
index 8af923fc9..d18ae41de 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNegativeFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNegativeFragmentTest.kt
@@ -15,7 +15,6 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -69,7 +68,6 @@ class SubmissionTestResultNegativeFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
index d13a64489..1aaa59220 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionTestResultNoConsentGivenFragmentTest.kt
@@ -15,7 +15,6 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.spyk
-import io.mockk.unmockkAll
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -58,7 +57,6 @@ class SubmissionTestResultNoConsentGivenFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionYourConsentFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionYourConsentFragmentTest.kt
index d04b7ce21..3084dc548 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionYourConsentFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionYourConsentFragmentTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.ui.submission.yourconsent.SubmissionYourConsentViewM
 import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import io.mockk.unmockkAll
 import kotlinx.coroutines.flow.flowOf
 import org.junit.After
 import org.junit.Before
@@ -56,7 +55,6 @@ class SubmissionYourConsentFragmentTest : BaseUITest() {
     @After
     fun teardown() {
         clearAllViewModels()
-        unmockkAll()
     }
 
     @Test
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/util/security/DBPasswordTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/util/security/DBPasswordTest.kt
index 65bc675e5..f06bf3afb 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/util/security/DBPasswordTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/util/security/DBPasswordTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.util.di.ApplicationComponent
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -21,16 +20,16 @@ import kotlinx.coroutines.runBlocking
 import net.sqlcipher.database.SQLiteException
 import org.hamcrest.Matchers.equalTo
 import org.hamcrest.Matchers.not
-import org.junit.After
 import org.junit.Assert.assertThat
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
+import testhelpers.BaseTestInstrumentation
 
 @RunWith(JUnit4::class)
-class DBPasswordTest {
+class DBPasswordTest : BaseTestInstrumentation() {
 
     @MockK lateinit var applicationComponent: ApplicationComponent
     @MockK lateinit var encryptedSharedPreferencesFactory: EncryptedPreferencesFactory
@@ -63,11 +62,6 @@ class DBPasswordTest {
         AppDatabase.reset(appContext)
     }
 
-    @After
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun generatesPassphraseInCorrectLength() {
         val passphrase = SecurityHelper.getDBPassword()
diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/worker/DiagnosisKeyRetrievalPeriodicWorkerTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/worker/DiagnosisKeyRetrievalPeriodicWorkerTest.kt
index f2eeb393d..bc8b3025f 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/worker/DiagnosisKeyRetrievalPeriodicWorkerTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/worker/DiagnosisKeyRetrievalPeriodicWorkerTest.kt
@@ -12,7 +12,6 @@ import io.mockk.Runs
 import io.mockk.every
 import io.mockk.just
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.CoreMatchers.notNullValue
 import org.hamcrest.CoreMatchers.nullValue
@@ -22,17 +21,19 @@ import org.junit.Before
 import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
+import testhelpers.BaseTestInstrumentation
 
 /**
  * DiagnosisKeyRetrievalPeriodicWorker test.
  */
 @Ignore("FixMe:DiagnosisKeyRetrievalPeriodicWorkerTest")
 @RunWith(AndroidJUnit4::class)
-class DiagnosisKeyRetrievalPeriodicWorkerTest {
+class DiagnosisKeyRetrievalPeriodicWorkerTest : BaseTestInstrumentation() {
     private lateinit var context: Context
     private lateinit var workManager: WorkManager
     private lateinit var request: WorkRequest
     private lateinit var request2: WorkRequest
+
     // small delay because WorkManager does not run work instantly when delay is off
     private val delay = 500L
 
@@ -131,7 +132,6 @@ class DiagnosisKeyRetrievalPeriodicWorkerTest {
     @After
     fun cleanUp() {
         workManager.cancelAllWork()
-        unmockkAll()
     }
 
     private fun runPeriodicJobInitialDelayMet() {
diff --git a/Corona-Warn-App/src/androidTest/java/testhelpers/BaseUITest.kt b/Corona-Warn-App/src/androidTest/java/testhelpers/BaseUITest.kt
index ad347acdb..65f9ce8d3 100644
--- a/Corona-Warn-App/src/androidTest/java/testhelpers/BaseUITest.kt
+++ b/Corona-Warn-App/src/androidTest/java/testhelpers/BaseUITest.kt
@@ -7,7 +7,7 @@ import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
 import org.junit.Rule
 import testhelpers.viewmodels.MockViewModelModule
 
-abstract class BaseUITest : BaseTest() {
+abstract class BaseUITest : BaseTestInstrumentation() {
 
     @get:Rule
     val permissionRule: GrantPermissionRule = GrantPermissionRule.grant(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigModuleTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigModuleTest.kt
index fdae6dd05..5a742dd75 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigModuleTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigModuleTest.kt
@@ -4,7 +4,6 @@ import android.content.Context
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.junit.jupiter.api.AfterEach
@@ -32,7 +31,6 @@ class AppConfigModuleTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
index d919d3119..85dcb2b5e 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/AppConfigProviderTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -57,7 +56,6 @@ class AppConfigProviderTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/internal/AppConfigSourceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/internal/AppConfigSourceTest.kt
index 9faa43631..d52c964ad 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/internal/AppConfigSourceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/internal/AppConfigSourceTest.kt
@@ -10,7 +10,6 @@ import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifyOrder
 import io.mockk.coVerifySequence
@@ -22,7 +21,6 @@ import io.mockk.verify
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -90,11 +88,6 @@ class AppConfigSourceTest : BaseTest() {
         every { cwaSettings.lastDeviceTimeStateChangeState = any() } just Runs
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = AppConfigSource(
         remoteAppConfigSource = remoteSource,
         localAppConfigSource = localSource,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
index 3e6b7ec31..58bdfad97 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
@@ -6,11 +6,9 @@ import de.rki.coronawarnapp.server.protocols.internal.v2.AppFeaturesOuterClass.A
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.mockkObject
 import io.mockk.spyk
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -26,11 +24,6 @@ class CWAConfigMapperTest : BaseTest() {
         mockkObject(CWADebug)
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `simple creation`() {
         val rawConfig = ApplicationConfigurationAndroid.newBuilder()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/ConfigParserTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/ConfigParserTest.kt
index 87713174b..46082ad4a 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/ConfigParserTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/ConfigParserTest.kt
@@ -11,13 +11,11 @@ import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import io.mockk.verifySequence
 import okio.ByteString.Companion.decodeHex
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -49,11 +47,6 @@ class ConfigParserTest : BaseTest() {
         appConfig180.exists() shouldBe true
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): ConfigParser = ConfigParser(
         cwaConfigMapper = cwaConfigMapper,
         keyDownloadConfigMapper = keyDownloadConfigMapper,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSanityCheck.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSanityCheck.kt
index 2a21d798e..3c94d8afd 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSanityCheck.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSanityCheck.kt
@@ -10,8 +10,6 @@ import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -32,11 +30,6 @@ class DefaultAppConfigSanityCheck : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @After
-    fun teardown() {
-        clearAllMocks()
-    }
-
     val context: Context
         get() = ApplicationProvider.getApplicationContext()
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSourceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSourceTest.kt
index 9aaeca2fd..313f4cbca 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSourceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/fallback/DefaultAppConfigSourceTest.kt
@@ -8,7 +8,6 @@ import de.rki.coronawarnapp.appconfig.mapping.ConfigParser
 import io.kotest.assertions.throwables.shouldThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -47,7 +46,6 @@ class DefaultAppConfigSourceTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/AppConfigStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/AppConfigStorageTest.kt
index 1f0ebdfa6..a467ec052 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/AppConfigStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/AppConfigStorageTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.util.TimeStamper
 import de.rki.coronawarnapp.util.serialization.SerializationModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -51,7 +50,6 @@ class AppConfigStorageTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/LocalAppConfigSourceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/LocalAppConfigSourceTest.kt
index 9bf5c9ddf..026e8d1d4 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/LocalAppConfigSourceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/local/LocalAppConfigSourceTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.appconfig.mapping.ConfigParser
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifyOrder
 import io.mockk.every
@@ -61,7 +60,6 @@ class LocalAppConfigSourceTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigApiTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigApiTest.kt
index 4cb358921..7534816f0 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigApiTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigApiTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.environment.download.DownloadCDNModule
 import de.rki.coronawarnapp.http.HttpModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.runBlocking
 import okhttp3.ConnectionSpec
@@ -40,7 +39,6 @@ class AppConfigApiTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigServerTest.kt
index 0aa04e4b6..f8e3b0aab 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/AppConfigServerTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.util.security.VerificationKeys
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -55,7 +54,6 @@ class AppConfigServerTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/RemoteAppConfigSourceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/RemoteAppConfigSourceTest.kt
index 79f79fa9e..0887d78cb 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/RemoteAppConfigSourceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/sources/remote/RemoteAppConfigSourceTest.kt
@@ -8,7 +8,6 @@ import de.rki.coronawarnapp.appconfig.sources.local.AppConfigStorage
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -65,7 +64,6 @@ class RemoteAppConfigSourceTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryLocationCensorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryLocationCensorTest.kt
index 991635564..a02d2f73c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryLocationCensorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryLocationCensorTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.contactdiary.storage.repo.ContactDiaryRepository
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -34,7 +33,6 @@ class DiaryLocationCensorTest : BaseTest() {
     @AfterEach
     fun teardown() {
         QRCodeCensor.lastGUID = null
-        clearAllMocks()
     }
 
     private fun createInstance(scope: CoroutineScope) = DiaryLocationCensor(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryPersonCensorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryPersonCensorTest.kt
index fe731ed3e..44b46c3d8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryPersonCensorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/DiaryPersonCensorTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.contactdiary.storage.repo.ContactDiaryRepository
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -34,7 +33,6 @@ class DiaryPersonCensorTest : BaseTest() {
     @AfterEach
     fun teardown() {
         QRCodeCensor.lastGUID = null
-        clearAllMocks()
     }
 
     private fun createInstance(scope: CoroutineScope) = DiaryPersonCensor(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/QRCodeCensorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/QRCodeCensorTest.kt
index 0fc7a543d..617bad4ca 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/QRCodeCensorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/QRCodeCensorTest.kt
@@ -4,7 +4,6 @@ import de.rki.coronawarnapp.bugreporting.debuglog.LogLine
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.mockkObject
 import kotlinx.coroutines.test.runBlockingTest
@@ -28,7 +27,6 @@ class QRCodeCensorTest : BaseTest() {
     @AfterEach
     fun teardown() {
         QRCodeCensor.lastGUID = null
-        clearAllMocks()
     }
 
     private fun createInstance() = QRCodeCensor()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/RegistrationTokenCensorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/RegistrationTokenCensorTest.kt
index 89ae8cd1e..08978e545 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/RegistrationTokenCensorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/censors/RegistrationTokenCensorTest.kt
@@ -5,12 +5,10 @@ import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.mockkObject
 import io.mockk.verify
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -30,11 +28,6 @@ class RegistrationTokenCensorTest : BaseTest() {
         every { LocalData.registrationToken() } returns testToken
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = RegistrationTokenCensor()
 
     @Test
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/DebugLoggerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/DebugLoggerTest.kt
index addaad19d..9824c5645 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/DebugLoggerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/DebugLoggerTest.kt
@@ -8,7 +8,6 @@ import de.rki.coronawarnapp.util.di.ApplicationComponent
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
@@ -55,7 +54,6 @@ class DebugLoggerTest : BaseIOTest() {
     fun teardown() {
         runBlocking { DebugLogger.stop() }
         testDir.deleteRecursively()
-        clearAllMocks()
         Timber.uprootAll()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanTaskTest.kt
index 1b13ca056..847990207 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanTaskTest.kt
@@ -2,14 +2,12 @@ package de.rki.coronawarnapp.contactdiary.retention
 
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifyOrder
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.assertThrows
@@ -28,11 +26,6 @@ class ContactDiaryCleanTaskTest : BaseTest() {
         coEvery { retentionCalculation.clearObsoleteRiskPerDate() } returns Unit
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = ContactDiaryCleanTask(
         retentionCalculation = retentionCalculation
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanWorkerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanWorkerTest.kt
index dbb0f0284..a919b427d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanWorkerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryCleanWorkerTest.kt
@@ -4,10 +4,8 @@ import android.content.Context
 import androidx.work.WorkerParameters
 import de.rki.coronawarnapp.task.TaskController
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.impl.annotations.RelaxedMockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -23,11 +21,6 @@ class ContactDiaryCleanWorkerTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createWorker() = ContactDiaryRetentionWorker(
         context = context,
         workerParams = workerParams,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryDataRetentionCalculationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryDataRetentionCalculationTest.kt
index c11f9e440..5c6e9b76f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryDataRetentionCalculationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryDataRetentionCalculationTest.kt
@@ -9,7 +9,6 @@ import de.rki.coronawarnapp.server.protocols.internal.v2.RiskCalculationParamete
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -22,7 +21,6 @@ import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.DateTime
 import org.joda.time.Instant
 import org.joda.time.LocalDate
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -48,11 +46,6 @@ class ContactDiaryDataRetentionCalculationTest : BaseTest() {
         every { timeStamper.nowUTC } returns Instant.parse("2020-08-20T23:00:00.000Z")
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = ContactDiaryRetentionCalculation(
         timeStamper = timeStamper,
         repository = contactDiaryRepository,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkBuilderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkBuilderTest.kt
index 8122dc1ec..1ae7c7959 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkBuilderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkBuilderTest.kt
@@ -2,8 +2,6 @@ package de.rki.coronawarnapp.contactdiary.retention
 
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -15,11 +13,6 @@ class ContactDiaryWorkBuilderTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `periodic work test`() {
         val periodicWork = ContactDiaryWorkBuilder().buildPeriodicWork()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkSchedulerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkSchedulerTest.kt
index bf9f2150e..0bd5a76f4 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkSchedulerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/contactdiary/retention/ContactDiaryWorkSchedulerTest.kt
@@ -5,11 +5,9 @@ import androidx.work.Operation
 import androidx.work.PeriodicWorkRequest
 import androidx.work.WorkManager
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verifySequence
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -34,11 +32,6 @@ class ContactDiaryWorkSchedulerTest : BaseTest() {
         } returns operation
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createScheduler() = ContactDiaryWorkScheduler(
         workManager = workManager,
         workBuilder = workBuilder
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/AnalyticsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/AnalyticsTest.kt
index 8e0a287ee..a1b981279 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/AnalyticsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/AnalyticsTest.kt
@@ -21,7 +21,6 @@ import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -35,7 +34,6 @@ import kotlinx.coroutines.delay
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Days
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -82,11 +80,6 @@ class AnalyticsTest : BaseTest() {
         coEvery { dataDonationAnalyticsServer.uploadAnalyticsData(any()) } just Runs
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(modules: Set<DonorModule> = setOf(exposureRiskMetadataDonor)) = spyk(
         Analytics(
             dataDonationAnalyticsServer = dataDonationAnalyticsServer,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/common/DistrictsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/common/DistrictsTest.kt
index 92f921a58..159d478d8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/common/DistrictsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/common/DistrictsTest.kt
@@ -7,9 +7,7 @@ import com.google.gson.Gson
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -27,11 +25,6 @@ class DistrictsTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @After
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     val context: Context
         get() = ApplicationProvider.getApplicationContext()
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/ExposureRiskMetadataDonorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/ExposureRiskMetadataDonorTest.kt
index e035de769..8e65fb16c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/ExposureRiskMetadataDonorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/ExposureRiskMetadataDonorTest.kt
@@ -11,13 +11,11 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
 import de.rki.coronawarnapp.util.TimeAndDateExtensions.seconds
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.flow.flowOf
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -42,11 +40,6 @@ class ExposureRiskMetadataDonorTest : BaseTest() {
         every { lowAggregatedRiskResult.mostRecentDateWithHighRisk } returns baseDate
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createRiskLevelResult(
         aggregatedRiskResult: AggregatedRiskResult?,
         failureReason: RiskLevelResult.FailureReason?,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
index 7ab9baac1..d138fd418 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
@@ -9,14 +9,12 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
 import de.rki.coronawarnapp.util.ApiLevel
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import io.mockk.mockkObject
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -51,11 +49,6 @@ class ClientMetadataDonorTest : BaseTest() {
         coEvery { enfClient.getENFClientVersion() } returns enfVersion
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = ClientMetadataDonor(
         apiLevel = apiLevel,
         appConfigProvider = appConfigProvider,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsApiV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsApiV1Test.kt
index 7aa3703f0..4ad0a1d39 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsApiV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsApiV1Test.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaDataRequestAndroid
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import kotlinx.coroutines.runBlocking
 import okhttp3.mockwebserver.MockResponse
 import okhttp3.mockwebserver.MockWebServer
@@ -33,7 +32,6 @@ class DataDonationAnalyticsApiV1Test : BaseTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsServerTest.kt
index 6010d1534..3ba9ea692 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/server/DataDonationAnalyticsServerTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaDataRequestAndroid
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -47,7 +46,6 @@ class DataDonationAnalyticsServerTest : BaseTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/AnalyticsSettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/AnalyticsSettingsTest.kt
index cecf1aedd..efd12e5c4 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/AnalyticsSettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/AnalyticsSettingsTest.kt
@@ -5,10 +5,8 @@ import de.rki.coronawarnapp.datadonation.analytics.storage.AnalyticsSettings
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -26,11 +24,6 @@ class AnalyticsSettingsTest : BaseTest() {
         every { context.getSharedPreferences("analytics_localdata", Context.MODE_PRIVATE) } returns preferences
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = AnalyticsSettings(
         context = context
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/input/AnalyticsUserInputViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/input/AnalyticsUserInputViewModelTest.kt
index 257780444..2dddc1558 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/input/AnalyticsUserInputViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/ui/input/AnalyticsUserInputViewModelTest.kt
@@ -8,13 +8,11 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData.PPAAgeGroup
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData.PPAFederalState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.CoroutineScope
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -48,11 +46,6 @@ class AnalyticsUserInputViewModelTest : BaseTest() {
         coEvery { districtsSource.loadDistricts() } returns emptyList()
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     fun createInstance(
         inputType: InputType,
         scope: CoroutineScope
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/AttestationContainerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/AttestationContainerTest.kt
index c631543b7..e5e424f5a 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/AttestationContainerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/AttestationContainerTest.kt
@@ -7,8 +7,6 @@ import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -20,11 +18,6 @@ class AttestationContainerTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun create(rawJson: String) = AttestationContainer(
         ourSalt = ByteArray(16),
         report = SafetyNetClientWrapper.Report(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/CWASafetyNetTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/CWASafetyNetTest.kt
index 9b04b9a50..45debcbe0 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/CWASafetyNetTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/CWASafetyNetTest.kt
@@ -18,7 +18,6 @@ import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -29,7 +28,6 @@ import kotlinx.coroutines.test.runBlockingTest
 import okio.ByteString.Companion.decodeBase64
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -89,11 +87,6 @@ class CWASafetyNetTest : BaseTest() {
         every { testSettings.skipSafetyNetTimeCheck } returns mockFlowPreference(false)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = CWASafetyNet(
         context = context,
         client = safetyNetClientWrapper,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/SafetyNetClientWrapperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/SafetyNetClientWrapperTest.kt
index 707950e24..02fca82d1 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/SafetyNetClientWrapperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/safetynet/SafetyNetClientWrapperTest.kt
@@ -12,7 +12,6 @@ import io.kotest.matchers.shouldBe
 import io.kotest.matchers.types.instanceOf
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
@@ -20,7 +19,6 @@ import kotlinx.coroutines.TimeoutCancellationException
 import kotlinx.coroutines.async
 import kotlinx.coroutines.test.runBlockingTest
 import okio.ByteString.Companion.decodeBase64
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -43,11 +41,6 @@ class SafetyNetClientWrapperTest : BaseTest() {
         every { report.jwsResult } returns JWS_BASE64
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = SafetyNetClientWrapper(
         safetyNetClient,
         environmentSetup
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
index 63d916e3d..08a05cafd 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
@@ -8,11 +8,9 @@ import de.rki.coronawarnapp.datadonation.survey.SurveySettings
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -29,11 +27,6 @@ class OTPRepositoryTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `last otp is read from preferences`() {
         val uuid = UUID.fromString("e103c755-0975-4588-a639-d0cd1ba421a0")
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
index 6fd1b7161..cb10d10b7 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
@@ -8,11 +8,9 @@ import de.rki.coronawarnapp.util.serialization.SerializationModule
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -34,11 +32,6 @@ class SurveySettingsTest : BaseTest() {
         every { context.getSharedPreferences("survey_localdata", Context.MODE_PRIVATE) } returns preferences
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `load and deserialize otp json`() {
         val instance = SurveySettings(context, baseGson)
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveyUrlProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveyUrlProviderTest.kt
index e1b94f135..c12cda95a 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveyUrlProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveyUrlProviderTest.kt
@@ -4,12 +4,10 @@ import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.test.runBlockingTest
 import okhttp3.HttpUrl.Companion.toHttpUrl
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import java.util.UUID
@@ -24,11 +22,6 @@ internal class SurveyUrlProviderTest {
         coEvery { appConfigProvider.getAppConfig().survey.otpQueryParameterName } returns "queryParamNameOtp"
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = SurveyUrlProvider(
         appConfigProvider
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyApiV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyApiV1Test.kt
index da75574ae..4dbb9a864 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyApiV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyApiV1Test.kt
@@ -9,7 +9,6 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid
 import io.kotest.assertions.throwables.shouldThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import kotlinx.coroutines.runBlocking
 import okhttp3.mockwebserver.MockResponse
 import okhttp3.mockwebserver.MockWebServer
@@ -37,7 +36,6 @@ class SurveyApiV1Test : BaseTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyServerTest.kt
index 2c771547a..244df491e 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/server/SurveyServerTest.kt
@@ -10,14 +10,12 @@ import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpacAndroid
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.runBlocking
 import okio.ByteString.Companion.decodeBase64
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -37,11 +35,6 @@ class SurveyServerTest : BaseTest() {
         every { attestationResult.accessControlProtoBuf } returns build
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `valid otp`() = runBlocking {
         val server = SurveyServer(surveyApi = { surveyApi }, TestDispatcherProvider())
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationOneTimeWorkerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationOneTimeWorkerTest.kt
index 3455d8b82..86c740b06 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationOneTimeWorkerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationOneTimeWorkerTest.kt
@@ -5,13 +5,11 @@ import androidx.work.WorkerParameters
 import de.rki.coronawarnapp.worker.BackgroundConstants
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.impl.annotations.RelaxedMockK
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -27,11 +25,6 @@ class DeadmanNotificationOneTimeWorkerTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createWorker() = DeadmanNotificationOneTimeWorker(
         context = context,
         workerParams = workerParams,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationPeriodicWorkerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationPeriodicWorkerTest.kt
index bc53f70fe..0e3fb42fa 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationPeriodicWorkerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationPeriodicWorkerTest.kt
@@ -5,13 +5,11 @@ import androidx.work.WorkerParameters
 import de.rki.coronawarnapp.worker.BackgroundConstants
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.impl.annotations.RelaxedMockK
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -27,11 +25,6 @@ class DeadmanNotificationPeriodicWorkerTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createWorker() = DeadmanNotificationPeriodicWorker(
         context = context,
         workerParams = workerParams,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt
index dbc88ecd1..27cb96a8f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt
@@ -7,14 +7,12 @@ import androidx.work.Operation
 import androidx.work.PeriodicWorkRequest
 import androidx.work.WorkManager
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
 import io.mockk.verifySequence
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -50,11 +48,6 @@ class DeadmanNotificationSchedulerTest : BaseTest() {
         } returns operation
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createScheduler() = DeadmanNotificationScheduler(
         timeCalculation = timeCalculation,
         workManager = workManager,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSenderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSenderTest.kt
index afd8f0cd3..9da60b2ab 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSenderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSenderTest.kt
@@ -5,9 +5,7 @@ import de.rki.coronawarnapp.notification.NotificationHelper
 import de.rki.coronawarnapp.util.device.ForegroundState
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -23,11 +21,6 @@ class DeadmanNotificationSenderTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createSender() = DeadmanNotificationSender(
         context = context,
         foregroundState = foregroundState,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationTimeCalculationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationTimeCalculationTest.kt
index a446d6e31..f83e96389 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationTimeCalculationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationTimeCalculationTest.kt
@@ -5,14 +5,12 @@ import de.rki.coronawarnapp.nearby.modules.detectiontracker.TrackedExposureDetec
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -30,11 +28,6 @@ class DeadmanNotificationTimeCalculationTest : BaseTest() {
         every { enfClient.lastSuccessfulTrackedExposureDetection() } returns flowOf(mockExposureDetection)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createTimeCalculator() = DeadmanNotificationTimeCalculation(
         timeStamper = timeStamper,
         enfClient = enfClient
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationWorkBuilderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationWorkBuilderTest.kt
index d7ca037ee..ab0908d25 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationWorkBuilderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationWorkBuilderTest.kt
@@ -3,8 +3,6 @@ package de.rki.coronawarnapp.deadman
 import androidx.work.BackoffPolicy
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -16,11 +14,6 @@ class DeadmanNotificationWorkBuilderTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `onetime work test`() {
         testOneTimeWork(10L)
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/DownloadDiagnosisKeysSettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/DownloadDiagnosisKeysSettingsTest.kt
index 44f67e089..3e03c7474 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/DownloadDiagnosisKeysSettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/DownloadDiagnosisKeysSettingsTest.kt
@@ -9,11 +9,9 @@ import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.util.serialization.SerializationModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -34,11 +32,6 @@ class DownloadDiagnosisKeysSettingsTest : BaseTest() {
         mockkObject(BuildConfigWrap)
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = DownloadDiagnosisKeysSettings(
         context = context,
         gson = baseGson
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/BaseKeyPackageSyncToolTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/BaseKeyPackageSyncToolTest.kt
index 1113f850f..dffa96ec0 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/BaseKeyPackageSyncToolTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/BaseKeyPackageSyncToolTest.kt
@@ -9,7 +9,6 @@ import de.rki.coronawarnapp.storage.DeviceStorage
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -49,7 +48,6 @@ class BaseKeyPackageSyncToolTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/CommonSyncToolTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/CommonSyncToolTest.kt
index d0631b5e2..29b079f8e 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/CommonSyncToolTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/CommonSyncToolTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.storage.DeviceStorage
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -99,7 +98,6 @@ abstract class CommonSyncToolTest : BaseIOTest() {
 
     @AfterEach
     open fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/DownloadDiagnosisKeysTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/DownloadDiagnosisKeysTaskTest.kt
index df2e2ce3d..6e4b58f4d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/DownloadDiagnosisKeysTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/DownloadDiagnosisKeysTaskTest.kt
@@ -12,7 +12,6 @@ import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.util.TimeStamper
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -25,7 +24,6 @@ import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -97,11 +95,6 @@ class DownloadDiagnosisKeysTaskTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = DownloadDiagnosisKeysTask(
         enfClient = enfClient,
         environmentSetup = environmentSetup,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyDownloadToolTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyDownloadToolTest.kt
index a5d3b1868..2e298c104 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyDownloadToolTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyDownloadToolTest.kt
@@ -12,7 +12,6 @@ import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -75,7 +74,6 @@ class KeyDownloadToolTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyPackageSyncToolTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyPackageSyncToolTest.kt
index 18a42f389..d9f99111c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyPackageSyncToolTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/download/KeyPackageSyncToolTest.kt
@@ -10,7 +10,6 @@ import de.rki.coronawarnapp.util.preferences.FlowPreference
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.every
@@ -91,7 +90,6 @@ class KeyPackageSyncToolTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/server/DiagnosisKeyServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/server/DiagnosisKeyServerTest.kt
index fe045e425..b8bcea0d3 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/server/DiagnosisKeyServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/server/DiagnosisKeyServerTest.kt
@@ -3,7 +3,6 @@ package de.rki.coronawarnapp.diagnosiskeys.server
 import dagger.Lazy
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.impl.annotations.MockK
@@ -36,7 +35,6 @@ class DiagnosisKeyServerTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/KeyCacheRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/KeyCacheRepositoryTest.kt
index 2b1b205ee..9382e10b7 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/KeyCacheRepositoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/KeyCacheRepositoryTest.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.diagnosiskeys.server.LocationCode
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -56,7 +55,6 @@ class KeyCacheRepositoryTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/legacy/LegacyKeyCacheMigrationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/legacy/LegacyKeyCacheMigrationTest.kt
index e1a33d271..dcb966efc 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/legacy/LegacyKeyCacheMigrationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/diagnosiskeys/storage/legacy/LegacyKeyCacheMigrationTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.util.HashExtensions.hashToMD5
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -51,7 +50,6 @@ class LegacyKeyCacheMigrationTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt
index bbc54b9bc..d3eb6d4ae 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/environment/EnvironmentSetupTest.kt
@@ -7,11 +7,9 @@ import de.rki.coronawarnapp.util.serialization.SerializationModule
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -38,11 +36,6 @@ class EnvironmentSetupTest : BaseTest() {
         } returns mockPreferences
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createEnvSetup() = EnvironmentSetup(
         context = context,
         gson = SerializationModule().baseGson()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
index 9e20b6429..f201b17a6 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
@@ -12,13 +12,11 @@ import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.types.shouldBeInstanceOf
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.runBlocking
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -42,11 +40,6 @@ class DefaultPlaybookTest : BaseTest() {
         coEvery { submissionServer.submitKeysToServerFake() } returns mockk()
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createPlaybook() = DefaultPlaybook(
         verificationServer = verificationServer,
         submissionServer = submissionServer
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/MainActivityViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/MainActivityViewModelTest.kt
index 6fb7cf973..1e15c104b 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/MainActivityViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/MainActivityViewModelTest.kt
@@ -8,11 +8,9 @@ import de.rki.coronawarnapp.util.CWADebug
 import de.rki.coronawarnapp.util.device.BackgroundModeStatus
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -39,11 +37,6 @@ class MainActivityViewModelTest : BaseTest() {
         every { environmentSetup.currentEnvironment } returns EnvironmentSetup.Type.WRU
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): MainActivityViewModel = MainActivityViewModel(
         dispatcherProvider = TestDispatcherProvider(),
         environmentSetup = environmentSetup,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
index 0ffe699ce..ca7c68ec6 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
@@ -2,8 +2,8 @@ package de.rki.coronawarnapp.main.home
 
 import android.content.Context
 import de.rki.coronawarnapp.appconfig.AppConfigProvider
-import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.deadman.DeadmanNotificationScheduler
+import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.main.CWASettings
 import de.rki.coronawarnapp.notification.ShareTestResultNotificationService
 import de.rki.coronawarnapp.risk.TimeVariables
@@ -27,7 +27,6 @@ import de.rki.coronawarnapp.util.security.EncryptionErrorResetTool
 import de.rki.coronawarnapp.util.shortcuts.AppShortcutsHelper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -39,7 +38,6 @@ import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -85,11 +83,6 @@ class HomeFragmentViewModelTest : BaseTest() {
         coEvery { statisticsProvider.current } returns emptyFlow()
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): HomeFragmentViewModel = HomeFragmentViewModel(
         dispatcherProvider = TestDispatcherProvider(),
         errorResetTool = errorResetTool,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/ENFClientTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/ENFClientTest.kt
index 871fef17e..244a4e266 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/ENFClientTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/ENFClientTest.kt
@@ -14,7 +14,6 @@ import de.rki.coronawarnapp.nearby.modules.version.ENFVersion
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -28,7 +27,6 @@ import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.toList
 import kotlinx.coroutines.runBlocking
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -53,11 +51,6 @@ class ENFClientTest : BaseTest() {
         every { exposureDetectionTracker.trackNewExposureDetection(any()) } just Runs
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createClient() = ENFClient(
         googleENFClient = googleENFClient,
         diagnosisKeyProvider = diagnosisKeyProvider,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
index 823cee90f..ac05c1a13 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
@@ -9,7 +9,6 @@ import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Ordering
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -22,7 +21,6 @@ import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -49,11 +47,6 @@ class DefaultExposureDetectionTrackerTest : BaseTest() {
         every { appConfigData.overallDetectionTimeout } returns Duration.standardMinutes(15)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(scope: CoroutineScope) = DefaultExposureDetectionTracker(
         scope = scope,
         dispatcherProvider = TestDispatcherProvider(),
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/ExposureDetectionTrackerStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/ExposureDetectionTrackerStorageTest.kt
index a85571308..046858663 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/ExposureDetectionTrackerStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/ExposureDetectionTrackerStorageTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.util.serialization.SerializationModule
 import de.rki.coronawarnapp.util.serialization.fromJson
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.test.runBlockingTest
@@ -79,7 +78,6 @@ class ExposureDetectionTrackerStorageTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/TrackedExposureDetectionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/TrackedExposureDetectionTest.kt
index d30014e3c..e0ecd8151 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/TrackedExposureDetectionTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/TrackedExposureDetectionTest.kt
@@ -2,9 +2,7 @@ package de.rki.coronawarnapp.nearby.modules.detectiontracker
 
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -16,11 +14,6 @@ class TrackedExposureDetectionTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `isCalculating flag depends on finishedAt`() {
         val initial = TrackedExposureDetection(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt
index 034c9d9e3..82f99876f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProviderTest.kt
@@ -9,7 +9,6 @@ import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -18,7 +17,6 @@ import io.mockk.just
 import io.mockk.mockk
 import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.assertThrows
@@ -49,11 +47,6 @@ class DefaultDiagnosisKeyProviderTest : BaseTest() {
         coEvery { enfVersion.requireMinimumVersion(any()) } returns Unit
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createProvider() = DefaultDiagnosisKeyProvider(
         enfVersion = enfVersion,
         submissionQuota = submissionQuota,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/SubmissionQuotaTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/SubmissionQuotaTest.kt
index 52c90fc86..c6838610a 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/SubmissionQuotaTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/SubmissionQuotaTest.kt
@@ -4,7 +4,6 @@ import de.rki.coronawarnapp.nearby.ENFClientLocalData
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -12,7 +11,6 @@ import io.mockk.verify
 import kotlinx.coroutines.runBlocking
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -48,11 +46,6 @@ class SubmissionQuotaTest : BaseTest() {
         every { timeStamper.nowUTC } returns Instant.parse("2020-08-01T23:00:00.000Z")
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createQuota() = SubmissionQuota(
         enfData = enfData,
         timeStamper = timeStamper
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeysdatamapper/DefaultDiagnosisKeysDataMapperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeysdatamapper/DefaultDiagnosisKeysDataMapperTest.kt
index 188056cc3..ffc63b2bb 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeysdatamapper/DefaultDiagnosisKeysDataMapperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeysdatamapper/DefaultDiagnosisKeysDataMapperTest.kt
@@ -7,11 +7,9 @@ import com.google.android.gms.nearby.exposurenotification.ReportType
 import de.rki.coronawarnapp.nearby.modules.diagnosiskeysdatamapper.DefaultDiagnosisKeysDataMapper.Companion.hasChanged
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -26,11 +24,6 @@ class DefaultDiagnosisKeysDataMapperTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createMapper() = DefaultDiagnosisKeysDataMapper(
         client = googleENFClient
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tekhistory/DefaultTEKHistoryProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tekhistory/DefaultTEKHistoryProviderTest.kt
index 9d4aa696b..3202a9622 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tekhistory/DefaultTEKHistoryProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tekhistory/DefaultTEKHistoryProviderTest.kt
@@ -17,7 +17,6 @@ import io.kotest.matchers.types.instanceOf
 import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -29,7 +28,6 @@ import io.mockk.verifyOrder
 import kotlinx.coroutines.TimeoutCancellationException
 import kotlinx.coroutines.async
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -98,11 +96,6 @@ class DefaultTEKHistoryProviderTest : BaseTest() {
         every { client.requestPreAuthorizedTemporaryExposureKeyRelease() } answers { MockGMSTask.forValue(null) }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = DefaultTEKHistoryProvider(
         client = client,
         enfVersion = enfVersion,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tracing/DefaultTracingStatusTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tracing/DefaultTracingStatusTest.kt
index 055c72127..a72581ca8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tracing/DefaultTracingStatusTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/tracing/DefaultTracingStatusTest.kt
@@ -4,7 +4,6 @@ import com.google.android.gms.nearby.exposurenotification.ExposureNotificationCl
 import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
@@ -13,7 +12,6 @@ import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.take
 import kotlinx.coroutines.flow.toList
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -32,11 +30,6 @@ class DefaultTracingStatusTest : BaseTest() {
         every { client.isEnabled } answers { MockGMSTask.forValue(true) }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(scope: CoroutineScope): DefaultTracingStatus = DefaultTracingStatus(
         client = client,
         scope = scope
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/version/DefaultENFVersionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/version/DefaultENFVersionTest.kt
index 4eefa1254..1f0772086 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/version/DefaultENFVersionTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/version/DefaultENFVersionTest.kt
@@ -9,12 +9,10 @@ import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -30,11 +28,6 @@ internal class DefaultENFVersionTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = DefaultENFVersion(
         client = client
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt
index e56375ebb..0e88002d6 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/windows/ExposureWindowsCalculationTest.kt
@@ -25,7 +25,6 @@ import io.kotest.matchers.ints.shouldBeGreaterThan
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -35,7 +34,6 @@ import kotlinx.coroutines.runBlocking
 import org.joda.time.DateTimeConstants
 import org.joda.time.Duration
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -71,11 +69,6 @@ class ExposureWindowsCalculationTest : BaseTest() {
         every { timeStamper.nowUTC } returns Instant.now()
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun debugLog(s: String, toShow: LogLevel = LogLevel.ALL) {
         if (logLevel < toShow)
             return
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/notification/TestResultAvailableNotificationServiceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/notification/TestResultAvailableNotificationServiceTest.kt
index 91747a3da..2a50eb7db 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/notification/TestResultAvailableNotificationServiceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/notification/TestResultAvailableNotificationServiceTest.kt
@@ -12,7 +12,6 @@ import de.rki.coronawarnapp.util.formatter.TestResult
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -22,12 +21,12 @@ import io.mockk.verify
 import io.mockk.verifyOrder
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
+import testhelpers.BaseTest
 import javax.inject.Provider
 
-class TestResultAvailableNotificationServiceTest {
+class TestResultAvailableNotificationServiceTest : BaseTest() {
 
     @MockK(relaxed = true) lateinit var context: Context
     @MockK lateinit var foregroundState: ForegroundState
@@ -51,11 +50,6 @@ class TestResultAvailableNotificationServiceTest {
         every { LocalData.isNotificationsTestEnabled } returns true
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = TestResultAvailableNotificationService(
         context = context,
         foregroundState = foregroundState,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/receiver/ExposureStateUpdateReceiverTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/receiver/ExposureStateUpdateReceiverTest.kt
index 8294b3454..f7470d342 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/receiver/ExposureStateUpdateReceiverTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/receiver/ExposureStateUpdateReceiverTest.kt
@@ -13,7 +13,6 @@ import de.rki.coronawarnapp.nearby.modules.detectiontracker.TrackedExposureDetec
 import de.rki.coronawarnapp.util.di.AppInjector
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
@@ -21,7 +20,6 @@ import io.mockk.mockk
 import io.mockk.mockkObject
 import io.mockk.verifySequence
 import kotlinx.coroutines.test.TestCoroutineScope
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -71,11 +69,6 @@ class ExposureStateUpdateReceiverTest : BaseTest() {
         every { exposureDetectionTracker.finishExposureDetection(any(), any()) } just Runs
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `updated state intent`() {
         every { intent.action } returns ExposureNotificationClient.ACTION_EXPOSURE_STATE_UPDATED
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelChangeDetectorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelChangeDetectorTest.kt
index e52889264..9ec5698f0 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelChangeDetectorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelChangeDetectorTest.kt
@@ -17,7 +17,6 @@ import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.every
@@ -28,7 +27,6 @@ import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -59,11 +57,6 @@ class RiskLevelChangeDetectorTest : BaseTest() {
         coEvery { surveys.resetSurvey(Surveys.Type.HIGH_RISK_ENCOUNTER) } just Runs
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createRiskLevel(
         riskState: RiskState,
         calculatedAt: Instant = Instant.EPOCH
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
index 2bd74acf5..90681c6f3 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/RiskLevelTaskTest.kt
@@ -16,8 +16,8 @@ import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.task.Task
 import de.rki.coronawarnapp.task.TaskCancellationException
 import de.rki.coronawarnapp.util.TimeStamper
-import io.kotest.matchers.shouldBe
 import de.rki.coronawarnapp.util.device.BackgroundModeStatus
+import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
 import io.mockk.coEvery
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/TimeVariablesTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/TimeVariablesTest.kt
index 63d994fc6..6d63bb5c8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/TimeVariablesTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/TimeVariablesTest.kt
@@ -6,8 +6,9 @@ import io.mockk.every
 import io.mockk.mockkObject
 import org.junit.Assert
 import org.junit.Test
+import testhelpers.BaseTest
 
-class TimeVariablesTest {
+class TimeVariablesTest : BaseTest() {
 
     @Test
     fun getDeactivationTracingMeasureThresholdTimeRange() {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/BaseRiskLevelStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/BaseRiskLevelStorageTest.kt
index 1447b8c32..5e52b89da 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/BaseRiskLevelStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/BaseRiskLevelStorageTest.kt
@@ -20,7 +20,6 @@ import io.kotest.matchers.shouldNotBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -35,7 +34,6 @@ import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.TestCoroutineScope
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -74,11 +72,6 @@ class BaseRiskLevelStorageTest : BaseTest() {
         coEvery { aggregatedRiskPerDateResultDao.insertRisk(any()) } just Runs
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         scope: CoroutineScope = TestCoroutineScope(),
         storedResultLimit: Int = 10,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/legacy/RiskLevelResultMigratorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/legacy/RiskLevelResultMigratorTest.kt
index 3b95ea47c..a122a3eb7 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/legacy/RiskLevelResultMigratorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/risk/storage/legacy/RiskLevelResultMigratorTest.kt
@@ -6,12 +6,10 @@ import de.rki.coronawarnapp.risk.RiskState
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.runBlocking
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -30,11 +28,6 @@ class RiskLevelResultMigratorTest : BaseTest() {
         every { timeStamper.nowUTC } returns Instant.EPOCH.plus(1337)
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = RiskLevelResultMigrator(
         timeStamper = timeStamper,
         encryptedPreferences = { mockPreferences },
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/ScanResultTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/ScanResultTest.kt
index 5669835c3..44bf60cc1 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/ScanResultTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/ScanResultTest.kt
@@ -7,8 +7,9 @@ import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class ScanResultTest {
+class ScanResultTest : BaseTest() {
     private val guidUpperCase = "123456-12345678-1234-4DA7-B166-B86D85475064"
     private val guidLowerCase = "123456-12345678-1234-4da7-b166-b86d85475064"
     private val guidMixedCase = "123456-12345678-1234-4dA7-b166-B86d85475064"
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionServiceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionServiceTest.kt
index e56a9d2e0..e58c53568 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionServiceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionServiceTest.kt
@@ -7,18 +7,17 @@ import de.rki.coronawarnapp.util.formatter.TestResult
 import de.rki.coronawarnapp.verification.server.VerificationKeyType
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
 import kotlinx.coroutines.runBlocking
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
+import testhelpers.BaseTest
 
-class SubmissionServiceTest {
+class SubmissionServiceTest : BaseTest() {
 
     private val tan = "123456-12345678-1234-4DA7-B166-B86D85475064"
     private val guid = "123456-12345678-1234-4DA7-B166-B86D85475064"
@@ -39,11 +38,6 @@ class SubmissionServiceTest {
         submissionService = SubmissionService(mockPlaybook)
     }
 
-    @AfterEach
-    fun cleanUp() {
-        clearAllMocks()
-    }
-
     @Test
     fun registrationWithGUIDSucceeds() {
         coEvery {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/StatisticsModuleTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/StatisticsModuleTest.kt
index 393a62e60..38ed7e98e 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/StatisticsModuleTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/StatisticsModuleTest.kt
@@ -4,7 +4,6 @@ import android.content.Context
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.junit.jupiter.api.AfterEach
@@ -30,7 +29,6 @@ class StatisticsModuleTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsAPIV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsAPIV1Test.kt
index 62a262fa4..516d86134 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsAPIV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsAPIV1Test.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.http.HttpModule
 import de.rki.coronawarnapp.statistics.StatisticsModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import kotlinx.coroutines.runBlocking
 import okhttp3.ConnectionSpec
 import okhttp3.mockwebserver.MockResponse
@@ -36,7 +35,6 @@ class StatisticsAPIV1Test : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsParserTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsParserTest.kt
index 1a176c550..ad42ff4e5 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsParserTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsParserTest.kt
@@ -10,9 +10,7 @@ import de.rki.coronawarnapp.statistics.SevenDayRValue
 import de.rki.coronawarnapp.statistics.StatisticsData
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -24,11 +22,6 @@ class StatisticsParserTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = StatisticsParser()
 
     @Test
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsProviderTest.kt
index 78498114a..b69690a48 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsProviderTest.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.util.device.ForegroundState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -16,7 +15,6 @@ import io.mockk.mockk
 import io.mockk.verify
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.MutableStateFlow
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -55,11 +53,6 @@ class StatisticsProviderTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance(scope: CoroutineScope) = StatisticsProvider(
         server = server,
         scope = scope,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsServerTest.kt
index 5a13d2552..a9ce4ebd8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/source/StatisticsServerTest.kt
@@ -5,7 +5,6 @@ import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -15,7 +14,6 @@ import kotlinx.coroutines.test.runBlockingTest
 import okhttp3.Cache
 import okhttp3.ResponseBody.Companion.toResponseBody
 import okio.ByteString.Companion.decodeHex
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import retrofit2.Response
@@ -36,11 +34,6 @@ class StatisticsServerTest : BaseIOTest() {
         every { cache.evictAll() } just Runs
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = StatisticsServer(
         api = { api },
         verificationKeys = verificationKeys,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/util/StatisticsNumberValueFormatterTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/util/StatisticsNumberValueFormatterTest.kt
index 31b9585c0..fb10d8e0c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/util/StatisticsNumberValueFormatterTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/statistics/util/StatisticsNumberValueFormatterTest.kt
@@ -8,17 +8,16 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkStatic
-import io.mockk.unmockkAll
-import org.junit.jupiter.api.AfterAll
 import org.junit.jupiter.api.BeforeAll
 import org.junit.jupiter.api.TestInstance
 import org.junit.jupiter.params.ParameterizedTest
 import org.junit.jupiter.params.provider.Arguments
 import org.junit.jupiter.params.provider.MethodSource
+import testhelpers.BaseTest
 import java.util.Locale
 
 @TestInstance(TestInstance.Lifecycle.PER_CLASS)
-internal class StatisticsNumberValueFormatterTest {
+internal class StatisticsNumberValueFormatterTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -78,9 +77,4 @@ internal class StatisticsNumberValueFormatterTest {
             Arguments.of(12_654_321, 0, Locale.UK, "12.7 Mio.")
         )
     }
-
-    @AfterAll
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
index 2b26304d3..b1735e823 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
@@ -10,7 +10,6 @@ import de.rki.coronawarnapp.util.storage.StatsFsProvider
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -71,8 +70,6 @@ class DeviceStorageTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
-
         privateDataDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/SubmissionRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/SubmissionRepositoryTest.kt
index 86714461a..cd1f01845 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/SubmissionRepositoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/SubmissionRepositoryTest.kt
@@ -34,9 +34,10 @@ import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
+import testhelpers.BaseTest
 import testhelpers.preferences.mockFlowPreference
 
-class SubmissionRepositoryTest {
+class SubmissionRepositoryTest : BaseTest() {
 
     @MockK lateinit var submissionSettings: SubmissionSettings
     @MockK lateinit var submissionService: SubmissionService
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/TestSettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/TestSettingsTest.kt
index 75dd982d0..6f204565c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/TestSettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/TestSettingsTest.kt
@@ -4,11 +4,9 @@ import android.content.Context
 import com.google.gson.Gson
 import de.rki.coronawarnapp.util.CWADebug
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import testhelpers.BaseTest
 import testhelpers.preferences.MockSharedPreferences
@@ -31,11 +29,6 @@ class TestSettingsTest : BaseTest() {
         } returns mockPreferences
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun buildInstance(): TestSettings = TestSettings(
         context = context,
         gson = gson
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/tracing/TracingIntervalRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/tracing/TracingIntervalRepositoryTest.kt
index 08b01eca2..1729c44fd 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/tracing/TracingIntervalRepositoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/tracing/TracingIntervalRepositoryTest.kt
@@ -6,17 +6,16 @@ import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
-import io.mockk.unmockkAll
 import kotlinx.coroutines.runBlocking
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 import java.util.Date
 
 /**
  * TracingIntervalRepository test.
  */
-class TracingIntervalRepositoryTest {
+class TracingIntervalRepositoryTest : BaseTest() {
 
     @MockK
     private lateinit var dao: TracingIntervalDao
@@ -62,9 +61,4 @@ class TracingIntervalRepositoryTest {
             }
         }
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/SubmissionModuleTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/SubmissionModuleTest.kt
index ba8b4b91b..35c1c87a5 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/SubmissionModuleTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/SubmissionModuleTest.kt
@@ -4,7 +4,6 @@ import android.content.Context
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
@@ -36,7 +35,6 @@ class SubmissionModuleTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/AutoSubmissionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/AutoSubmissionTest.kt
index ee3988f0e..3d848862a 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/AutoSubmissionTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/AutoSubmissionTest.kt
@@ -14,7 +14,6 @@ import de.rki.coronawarnapp.util.TimeStamper
 import de.rki.coronawarnapp.util.preferences.FlowPreference
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.every
@@ -27,7 +26,6 @@ import io.mockk.verifySequence
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -64,11 +62,6 @@ class AutoSubmissionTest : BaseTest() {
         mockkStatic("de.rki.coronawarnapp.task.TaskControllerExtensionsKt")
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = AutoSubmission(
         timeStamper = timeStamper,
         submissionSettings = submissionSettings,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/SubmissionWorkerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/SubmissionWorkerTest.kt
index 19c83a55b..844f15598 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/SubmissionWorkerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/auto/SubmissionWorkerTest.kt
@@ -12,7 +12,6 @@ import de.rki.coronawarnapp.task.common.DefaultTaskRequest
 import de.rki.coronawarnapp.task.submitBlocking
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -21,7 +20,6 @@ import io.mockk.impl.annotations.RelaxedMockK
 import io.mockk.mockkStatic
 import io.mockk.slot
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -42,11 +40,6 @@ class SubmissionWorkerTest : BaseTest() {
         coEvery { taskController.submitBlocking(any()) } returns taskResult
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createWorker() = SubmissionWorker(
         context = context,
         workerParams = workerParams,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionApiV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionApiV1Test.kt
index 7b946bb8f..ad13a3c1f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionApiV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionApiV1Test.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.server.protocols.internal.SubmissionPayloadOuterClas
 import de.rki.coronawarnapp.submission.SubmissionModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.runBlocking
@@ -46,7 +45,6 @@ class SubmissionApiV1Test : BaseTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionServerTest.kt
index 34c503439..6f2aa826c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/server/SubmissionServerTest.kt
@@ -9,7 +9,6 @@ import de.rki.coronawarnapp.submission.SubmissionModule
 import de.rki.coronawarnapp.util.headerSizeIgnoringContentLength
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -50,7 +49,6 @@ class SubmissionServerTest : BaseTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/testresult/pending/SubmissionTestResultPendingViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/testresult/pending/SubmissionTestResultPendingViewModelTest.kt
index 0a75261ab..7898f97ea 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/testresult/pending/SubmissionTestResultPendingViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/testresult/pending/SubmissionTestResultPendingViewModelTest.kt
@@ -8,14 +8,12 @@ import de.rki.coronawarnapp.util.DeviceUIState
 import de.rki.coronawarnapp.util.NetworkRequestWrapper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.test.TestCoroutineScope
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -40,11 +38,6 @@ class SubmissionTestResultPendingViewModelTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance(scope: CoroutineScope = TestCoroutineScope()) = SubmissionTestResultPendingViewModel(
         dispatcherProvider = scope.asDispatcherProvider(),
         shareTestResultNotificationService = shareTestResultNotificationService,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskControllerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskControllerTest.kt
index 9aec6e4ec..22595f0c3 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskControllerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskControllerTest.kt
@@ -21,7 +21,6 @@ import io.kotest.matchers.shouldNotBe
 import io.kotest.matchers.types.instanceOf
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coVerifySequence
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -87,7 +86,6 @@ class TaskControllerTest : BaseIOTest() {
     @AfterEach
     fun teardown() {
         taskFactoryMap.clear()
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskStateTest.kt
index ebd17b87f..4413edc7c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/task/TaskStateTest.kt
@@ -3,11 +3,9 @@ package de.rki.coronawarnapp.task
 import de.rki.coronawarnapp.task.internal.InternalTaskState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.Deferred
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -21,11 +19,6 @@ class TaskStateTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `pending state`() {
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/GeneralTracingStatusTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/GeneralTracingStatusTest.kt
index 284789ce0..2cf5685ff 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/GeneralTracingStatusTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/GeneralTracingStatusTest.kt
@@ -5,13 +5,11 @@ import de.rki.coronawarnapp.util.bluetooth.BluetoothProvider
 import de.rki.coronawarnapp.util.location.LocationProvider
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -42,11 +40,6 @@ class GeneralTracingStatusTest : BaseTest() {
         every { enfClient.isLocationLessScanningSupported } returns isLocationLessScanningSupported
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): GeneralTracingStatus = GeneralTracingStatus(
         bluetoothProvider = bluetoothProvider,
         locationProvider = locationProvider,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/IncreasedRiskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/IncreasedRiskTest.kt
index 14d885d7e..778e65573 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/IncreasedRiskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/IncreasedRiskTest.kt
@@ -5,12 +5,10 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.risk.RiskState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.slot
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 
@@ -23,11 +21,6 @@ internal class IncreasedRiskTest {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `getRiskContactLast() should return null when lastEncounterAt == null`() {
         val risk = defaultRisk.copy(lastEncounterAt = null)
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/LowRiskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/LowRiskTest.kt
index 98dc1549e..4b997aa7c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/LowRiskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/states/LowRiskTest.kt
@@ -5,11 +5,9 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.risk.RiskState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 
@@ -28,11 +26,6 @@ internal class LowRiskTest {
         } returns "String not relevant for this test"
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private val defaultRisk = LowRisk(
         riskState = RiskState.LOW_RISK,
         isInDetailsMode = false,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProviderTest.kt
index bbf76e937..b8a3664aa 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProviderTest.kt
@@ -21,14 +21,12 @@ import de.rki.coronawarnapp.tracing.ui.details.items.survey.UserSurveyBox
 import io.kotest.matchers.ints.shouldBeGreaterThan
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -51,11 +49,6 @@ class TracingDetailsItemProviderTest : BaseTest() {
         every { context.resources } returns resources
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = TracingDetailsItemProvider(
         tracingStatus = tracingStatus,
         tracingRepository = tracingRepository,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsStateTest.kt
index 8c215d7f8..ced9a44a5 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsStateTest.kt
@@ -9,11 +9,9 @@ import de.rki.coronawarnapp.risk.RiskState.LOW_RISK
 import de.rki.coronawarnapp.tracing.GeneralTracingStatus
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -30,11 +28,6 @@ class TracingDetailsStateTest : BaseTest() {
         every { context.resources } returns resources
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         tracingStatus: GeneralTracingStatus.Status = mockk(),
         riskState: RiskState,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/homecards/SubmissionStateProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/homecards/SubmissionStateProviderTest.kt
index 941f2f6d2..15decd484 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/homecards/SubmissionStateProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/homecards/SubmissionStateProviderTest.kt
@@ -9,7 +9,6 @@ import de.rki.coronawarnapp.util.DeviceUIState
 import de.rki.coronawarnapp.util.NetworkRequestWrapper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
@@ -17,7 +16,6 @@ import io.mockk.verifySequence
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -45,11 +43,6 @@ class SubmissionStateProviderTest : BaseTest() {
         every { LocalData.registrationToken() } returns null
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = SubmissionStateProvider(submissionRepository)
 
     @Test
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/settings/TracingSettingsStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/settings/TracingSettingsStateTest.kt
index 61f9e453c..9c4280d16 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/settings/TracingSettingsStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/settings/TracingSettingsStateTest.kt
@@ -6,10 +6,8 @@ import de.rki.coronawarnapp.tracing.GeneralTracingStatus
 import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -23,11 +21,6 @@ class TracingSettingsStateTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `state mapping`() {
         GeneralTracingStatus.Status.TRACING_ACTIVE.toTracingSettingsState() shouldBe TracingSettingsState.TracingActive
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/statusbar/TracingHeaderStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/statusbar/TracingHeaderStateTest.kt
index 5e6f1e043..b12446530 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/statusbar/TracingHeaderStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/tracing/ui/statusbar/TracingHeaderStateTest.kt
@@ -10,10 +10,8 @@ import de.rki.coronawarnapp.tracing.ui.statusbar.TracingHeaderState.TracingInAct
 import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -27,11 +25,6 @@ class TracingHeaderStateTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `state mapping`() {
         Status.TRACING_ACTIVE.toHeaderState() shouldBe TracingActive
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/calendar/CalendarCalculationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/calendar/CalendarCalculationTest.kt
index a77e3a903..3c4acf7c8 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/calendar/CalendarCalculationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/calendar/CalendarCalculationTest.kt
@@ -5,12 +5,10 @@ import android.content.res.Configuration
 import android.content.res.Resources
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.joda.time.DateTime
 import org.joda.time.format.DateTimeFormat
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -35,11 +33,6 @@ class CalendarCalculationTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = CalendarCalculation(context)
 
     @Test
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/launcher/LauncherActivityViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/launcher/LauncherActivityViewModelTest.kt
index 930986dbe..14df18a27 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/launcher/LauncherActivityViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/launcher/LauncherActivityViewModelTest.kt
@@ -16,12 +16,13 @@ import kotlinx.coroutines.test.runBlockingTest
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
+import testhelpers.BaseTest
 import testhelpers.TestDispatcherProvider
 import testhelpers.extensions.InstantExecutorExtension
 import testhelpers.preferences.mockFlowPreference
 
 @ExtendWith(InstantExecutorExtension::class)
-class LauncherActivityViewModelTest {
+class LauncherActivityViewModelTest : BaseTest() {
 
     @MockK lateinit var updateChecker: UpdateChecker
     @MockK lateinit var cwaSettings: CWASettings
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/onboarding/EasyLanguageLinkTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/onboarding/EasyLanguageLinkTest.kt
index 66fef2f3b..d29a4c1a1 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/onboarding/EasyLanguageLinkTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/onboarding/EasyLanguageLinkTest.kt
@@ -3,8 +3,6 @@ package de.rki.coronawarnapp.ui.onboarding
 import io.kotest.matchers.shouldBe
 import io.mockk.every
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -17,11 +15,6 @@ class EasyLanguageLinkTest : BaseTest() {
         mockkObject(Locale.getDefault())
     }
 
-    @AfterEach
-    fun teardown() {
-        unmockkAll()
-    }
-
     @Test
     fun showLinkForGerman() {
         every { Locale.getDefault().language } returns "de"
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsFragmentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsFragmentViewModelTest.kt
index 031ff0e1d..b3f35db80 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsFragmentViewModelTest.kt
@@ -6,12 +6,10 @@ import de.rki.coronawarnapp.ui.settings.notifications.NotificationSettingsFragme
 import de.rki.coronawarnapp.ui.settings.notifications.NotificationSettingsState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
 import kotlinx.coroutines.flow.flow
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -36,11 +34,6 @@ class NotificationSettingsFragmentViewModelTest : BaseTest() {
         every { notificationSettings.isNotificationsTestEnabled } returns flow { emit(true) }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): NotificationSettingsFragmentViewModel =
         NotificationSettingsFragmentViewModel(
             dispatcherProvider = TestDispatcherProvider(),
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsStateTest.kt
index 0e1222d58..fa2bf9ceb 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationSettingsStateTest.kt
@@ -7,13 +7,11 @@ import de.rki.coronawarnapp.util.ContextExtensions
 import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import io.mockk.mockkObject
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -33,11 +31,6 @@ class NotificationSettingsStateTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         isNotificationsEnabled: Boolean = true,
         isNotificationsRiskEnabled: Boolean = true,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationsSettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationsSettingsTest.kt
index b28ebbb63..3bd5a7811 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationsSettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/notification/NotificationsSettingsTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.util.device.ForegroundState
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -18,7 +17,6 @@ import io.mockk.verifySequence
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -45,11 +43,6 @@ class NotificationsSettingsTest : BaseTest() {
         coEvery { foregroundState.isInForeground } returns flow { emit(true) }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = NotificationSettings(
         foregroundState = foregroundState,
         notificationManagerCompat = notificationManagerCompat
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsBackgroundStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsBackgroundStateTest.kt
index 2a461f487..99ce0f948 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsBackgroundStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsBackgroundStateTest.kt
@@ -5,10 +5,8 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat
 import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -22,11 +20,6 @@ class SettingsBackgroundStateTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(isEnabled: Boolean) = SettingsBackgroundState(
         isEnabled = isEnabled
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragmentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragmentViewModelTest.kt
index b41968920..6b86ddd69 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragmentViewModelTest.kt
@@ -7,13 +7,11 @@ import de.rki.coronawarnapp.ui.settings.notifications.NotificationSettings
 import de.rki.coronawarnapp.util.device.BackgroundModeStatus
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -44,11 +42,6 @@ class SettingsFragmentViewModelTest : BaseTest() {
         every { analytics.isAnalyticsEnabledFlow() } returns flow { emit(true) }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(): SettingsFragmentViewModel = SettingsFragmentViewModel(
         dispatcherProvider = TestDispatcherProvider(),
         tracingStatus = tracingStatus,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsNotificationStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsNotificationStateTest.kt
index 69dcba26c..9398261e2 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsNotificationStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsNotificationStateTest.kt
@@ -7,14 +7,12 @@ import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat
 import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import io.mockk.mockkObject
 import io.mockk.verify
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -32,11 +30,6 @@ class SettingsNotificationStateTest : BaseTest() {
         every { context.getDrawableCompat(any()) } returns mockk()
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `enabled state`() {
         SettingsNotificationState(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsTracingStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsTracingStateTest.kt
index 74c061f14..3605b67d7 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsTracingStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/settings/start/SettingsTracingStateTest.kt
@@ -7,10 +7,8 @@ import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat
 import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -24,11 +22,6 @@ class SettingsTracingStateTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `state mapping`() {
         GeneralTracingStatus.Status.TRACING_ACTIVE.toSettingsTracingState() shouldBe SettingsTracingState.TracingActive
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarViewModelTest.kt
index 1a07365dc..05498c26c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/calendar/SubmissionSymptomCalendarViewModelTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.util.preferences.FlowPreference
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.every
@@ -17,7 +16,6 @@ import io.mockk.verify
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
 import org.joda.time.LocalDate
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -45,11 +43,6 @@ class SubmissionSymptomCalendarViewModelTest : BaseTest() {
         every { submissionRepository.currentSymptoms } returns currentSymptoms
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createViewModel(indication: Symptoms.Indication = Symptoms.Indication.POSITIVE) =
         SubmissionSymptomCalendarViewModel(
             symptomIndication = indication,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt
index fb0e07521..f067783b3 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/symptoms/introduction/SubmissionSymptomIntroductionViewModelTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.submission.auto.AutoSubmission
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.coVerifySequence
@@ -16,7 +15,6 @@ import io.mockk.just
 import io.mockk.verify
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -41,11 +39,6 @@ class SubmissionSymptomIntroductionViewModelTest : BaseTest() {
         every { submissionRepository.currentSymptoms } returns currentSymptoms
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createViewModel() = SubmissionSymptomIntroductionViewModel(
         dispatcherProvider = TestDispatcherProvider(),
         submissionRepository = submissionRepository,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testavailable/SubmissionTestResultAvailableViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testavailable/SubmissionTestResultAvailableViewModelTest.kt
index 9be0ec3c9..d6e16b311 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testavailable/SubmissionTestResultAvailableViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/testavailable/SubmissionTestResultAvailableViewModelTest.kt
@@ -8,14 +8,12 @@ import de.rki.coronawarnapp.ui.submission.resultavailable.SubmissionTestResultAv
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.verify
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -51,11 +49,6 @@ class SubmissionTestResultAvailableViewModelTest : BaseTest() {
         autoSubmission = autoSubmission
     )
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `consent repository changed`() {
         val consentMutable = MutableStateFlow(false)
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/warnothers/SubmissionResultPositiveOtherWarningNoConsentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/warnothers/SubmissionResultPositiveOtherWarningNoConsentViewModelTest.kt
index d87ada61d..eb91b4faf 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/warnothers/SubmissionResultPositiveOtherWarningNoConsentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/warnothers/SubmissionResultPositiveOtherWarningNoConsentViewModelTest.kt
@@ -7,7 +7,6 @@ import de.rki.coronawarnapp.submission.auto.AutoSubmission
 import de.rki.coronawarnapp.submission.data.tekhistory.TEKHistoryUpdater
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
@@ -15,7 +14,6 @@ import io.mockk.verify
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -55,11 +53,6 @@ class SubmissionResultPositiveOtherWarningNoConsentViewModelTest : BaseTest() {
         submissionRepository = submissionRepository
     )
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `consent is stored and tek history updated`() {
         val consentMutable = MutableStateFlow(false)
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentViewModelTest.kt
index d5a70f44c..30797a6da 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentViewModelTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.ui.Country
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
@@ -14,7 +13,6 @@ import io.mockk.just
 import io.mockk.verify
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -46,11 +44,6 @@ class SubmissionYourConsentViewModelTest : BaseTest() {
         dispatcherProvider = TestDispatcherProvider()
     )
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `country list`() {
         val viewModel = createViewModel()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/UpdateCheckerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/UpdateCheckerTest.kt
index e4fe8adbb..6ae3f903d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/UpdateCheckerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/update/UpdateCheckerTest.kt
@@ -7,14 +7,12 @@ import de.rki.coronawarnapp.environment.BuildConfigWrap
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerifySequence
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -32,11 +30,6 @@ class UpdateCheckerTest : BaseTest() {
         coEvery { appConfigProvider.getAppConfig() } returns configData
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = UpdateChecker(
         appConfigProvider = appConfigProvider
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
index 781aade5a..a0d64f4a7 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
@@ -8,7 +8,6 @@ import de.rki.coronawarnapp.util.device.PowerManagement
 import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
@@ -17,7 +16,6 @@ import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -42,11 +40,6 @@ class BackgroundModeStatusTest : BaseTest() {
         every { foregroundState.isInForeground } returns flowOf(true)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(scope: CoroutineScope): BackgroundModeStatus = BackgroundModeStatus(
         activityManager = activityManager,
         appScope = scope,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CameraPermissionHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CameraPermissionHelperTest.kt
index 57fdbc694..ffbad272c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CameraPermissionHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CameraPermissionHelperTest.kt
@@ -7,14 +7,13 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
 import org.hamcrest.CoreMatchers
 import org.hamcrest.MatcherAssert
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class CameraPermissionHelperTest {
+class CameraPermissionHelperTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -43,9 +42,4 @@ class CameraPermissionHelperTest {
         val result = hasCameraPermission(context)
         MatcherAssert.assertThat(result, CoreMatchers.`is`(false))
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ConnectivityHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ConnectivityHelperTest.kt
index d3c345ce8..9ae6f964d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ConnectivityHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ConnectivityHelperTest.kt
@@ -11,16 +11,15 @@ import io.mockk.mockk
 import io.mockk.mockkConstructor
 import io.mockk.mockkObject
 import io.mockk.mockkStatic
-import io.mockk.unmockkAll
-import org.junit.After
 import org.junit.Assert.assertEquals
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
 /**
  * ConnectivityHelper test.
  */
-class ConnectivityHelperTest {
+class ConnectivityHelperTest : BaseTest() {
 
     @MockK private lateinit var context: Context
 
@@ -76,9 +75,4 @@ class ConnectivityHelperTest {
         ConnectivityHelper.unregisterNetworkStatusCallback(context, callback)
         assertEquals(registered, false)
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/DataBindingAdaptersTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/DataBindingAdaptersTest.kt
index ef75a50d4..281486f46 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/DataBindingAdaptersTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/DataBindingAdaptersTest.kt
@@ -18,8 +18,9 @@ import io.mockk.verify
 import io.mockk.verifySequence
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class DataBindingAdaptersTest {
+class DataBindingAdaptersTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
index 0ca6efe8c..45c6063ee 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
@@ -11,13 +11,12 @@ import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.mockk
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
 import io.mockk.verify
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class ExternalActionHelperTest {
+class ExternalActionHelperTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -78,9 +77,4 @@ class ExternalActionHelperTest {
         ExternalActionHelper.shareText(fragment = fragment, text = "text", title = "title")
         verify(exactly = 1) { fragment.startActivity(any()) }
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/HashExtensionsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/HashExtensionsTest.kt
index 3384063bf..d91bad45b 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/HashExtensionsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/HashExtensionsTest.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.util.HashExtensions.toMD5
 import de.rki.coronawarnapp.util.HashExtensions.toSHA1
 import de.rki.coronawarnapp.util.HashExtensions.toSHA256
 import io.kotest.matchers.shouldBe
-import io.mockk.clearAllMocks
 import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
@@ -25,8 +24,6 @@ class HashExtensionsTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
-
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/RetryMechanismTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/RetryMechanismTest.kt
index c0697e18d..dae2845e5 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/RetryMechanismTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/RetryMechanismTest.kt
@@ -8,11 +8,9 @@ import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.kotest.matchers.types.instanceOf
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -29,11 +27,6 @@ class RetryMechanismTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `simple retry`() {
         val attempts = mutableListOf<RetryMechanism.Attempt>()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TimeAndDateExtensionsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TimeAndDateExtensionsTest.kt
index bffa97b65..50960f2ca 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TimeAndDateExtensionsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TimeAndDateExtensionsTest.kt
@@ -8,14 +8,12 @@ import de.rki.coronawarnapp.util.TimeAndDateExtensions.seconds
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
 import org.hamcrest.CoreMatchers
 import org.hamcrest.MatcherAssert
 import org.joda.time.DateTime
 import org.joda.time.DateTimeZone
 import org.joda.time.Instant
 import org.joda.time.LocalDate
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -33,11 +31,6 @@ class TimeAndDateExtensionsTest : BaseTest() {
         mockkObject(CoronaWarnApplication)
     }
 
-    @AfterEach
-    fun cleanUp() {
-        unmockkAll()
-    }
-
     @Test
     fun getCurrentHourUTCTest() {
         val result = getCurrentHourUTC()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/bluetooth/BluetoothProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/bluetooth/BluetoothProviderTest.kt
index 8ada1306d..aed289c43 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/bluetooth/BluetoothProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/bluetooth/BluetoothProviderTest.kt
@@ -8,7 +8,6 @@ import android.content.IntentFilter
 import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -19,7 +18,6 @@ import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.test.TestCoroutineScope
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -47,11 +45,6 @@ class BluetoothProviderTest : BaseTest() {
         every { bluetoothAdapter.isEnabled } returns true
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         scope: CoroutineScope = appScope,
         adapter: BluetoothAdapter? = bluetoothAdapter
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/device/ForegroundStateTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/device/ForegroundStateTest.kt
index cbb714147..93c8bd666 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/device/ForegroundStateTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/device/ForegroundStateTest.kt
@@ -5,11 +5,9 @@ import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.LifecycleRegistry
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -30,11 +28,6 @@ class ForegroundStateTest : BaseTest() {
         every { lifecycleOwner.lifecycle } returns lifecycle
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = ForegroundState(
         processLifecycleOwner = lifecycleOwner
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterHelperTest.kt
index 96c471a63..adf4e0bbb 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterHelperTest.kt
@@ -10,14 +10,13 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkObject
-import io.mockk.unmockkAll
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.MatcherAssert.assertThat
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class FormatterHelperTest {
+class FormatterHelperTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -109,9 +108,4 @@ class FormatterHelperTest {
         // Check formatColor when value false
         formatColorBase(bValue = false, iColor = 2)
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterStatisticsHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterStatisticsHelperTest.kt
index 671a8abce..32de83877 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterStatisticsHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterStatisticsHelperTest.kt
@@ -13,15 +13,14 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockkStatic
 import io.mockk.slot
-import io.mockk.unmockkAll
 import org.joda.time.DateTime
 import org.joda.time.Instant
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 import java.util.Locale
 
-class FormatterStatisticsHelperTest {
+class FormatterStatisticsHelperTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -90,11 +89,6 @@ class FormatterStatisticsHelperTest {
         ).getPrimaryLabel(context) shouldBe "Until 13.01.2021"
     }
 
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
-
     companion object {
         private const val TODAY = "Today"
         private const val CURRENT = "Current"
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelperTest.kt
index 320a46835..ec822d947 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelperTest.kt
@@ -20,14 +20,13 @@ import io.mockk.mockk
 import io.mockk.mockkConstructor
 import io.mockk.mockkObject
 import io.mockk.mockkStatic
-import io.mockk.unmockkAll
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.MatcherAssert.assertThat
-import org.junit.After
 import org.junit.Before
 import org.junit.Test
+import testhelpers.BaseTest
 
-class FormatterSubmissionHelperTest {
+class FormatterSubmissionHelperTest : BaseTest() {
 
     @MockK
     private lateinit var context: Context
@@ -318,9 +317,4 @@ class FormatterSubmissionHelperTest {
         formatTestResultBase(oUiState = NetworkRequestWrapper.RequestSuccessful(DeviceUIState.SUBMITTED_INITIAL))
         formatTestResultBase(oUiState = NetworkRequestWrapper.RequestSuccessful(DeviceUIState.UNPAIRED))
     }
-
-    @After
-    fun cleanUp() {
-        unmockkAll()
-    }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/location/LocationProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/location/LocationProviderTest.kt
index ed98e17e1..58083a7d9 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/location/LocationProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/location/LocationProviderTest.kt
@@ -9,7 +9,6 @@ import android.location.LocationManager
 import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
@@ -20,7 +19,6 @@ import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.test.TestCoroutineScope
 import kotlinx.coroutines.test.runBlockingTest
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -48,11 +46,6 @@ class LocationProviderTest : BaseTest() {
         every { context.getSystemService(Context.LOCATION_SERVICE) } returns locationManager
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         scope: CoroutineScope = appScope
     ): LocationProvider = LocationProvider(
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
index 2a9e92c6c..1da581b21 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
@@ -12,7 +12,6 @@ import io.kotest.matchers.shouldBe
 import io.mockk.Called
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
@@ -22,7 +21,6 @@ import io.mockk.verifySequence
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.test.TestCoroutineScope
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -75,11 +73,6 @@ class NetworkStateProviderTest : BaseTest() {
         every { testSettings.fakeMeteredConnection } returns mockFlowPreference(false)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(scope: CoroutineScope) = NetworkStateProvider(
         context = context,
         appScope = scope,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptedPreferencesFactoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptedPreferencesFactoryTest.kt
index a2c7fd375..dc37e11df 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptedPreferencesFactoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptedPreferencesFactoryTest.kt
@@ -4,10 +4,8 @@ import android.content.Context
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.mockk.Called
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -20,11 +18,6 @@ class EncryptedPreferencesFactoryTest : BaseTest() {
         MockKAnnotations.init(this)
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `sideeffect free init`() {
         shouldNotThrowAny {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptionResetToolTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptionResetToolTest.kt
index 0a08f7fe5..9b16e6e67 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptionResetToolTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/EncryptionResetToolTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.exception.CwaSecurityException
 import de.rki.coronawarnapp.util.TimeStamper
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.joda.time.Instant
@@ -52,8 +51,6 @@ class EncryptionResetToolTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
-
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/SecurityHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/SecurityHelperTest.kt
index 8aefbcda3..cb3ce3fdd 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/SecurityHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/security/SecurityHelperTest.kt
@@ -5,13 +5,11 @@ import de.rki.coronawarnapp.util.di.ApplicationComponent
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
 import io.mockk.verify
 import io.mockk.verifySequence
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -34,11 +32,6 @@ class SecurityHelperTest : BaseTest() {
         every { appComponent.encryptedPreferencesFactory } returns preferenceFactory
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     @Test
     fun `error free case is sideeffect free`() {
         val sharedPreferences: SharedPreferences = mockk()
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/worker/CWAWorkerFactoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/worker/CWAWorkerFactoryTest.kt
index 434d22297..4fdcc4800 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/worker/CWAWorkerFactoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/worker/CWAWorkerFactoryTest.kt
@@ -8,10 +8,8 @@ import de.rki.coronawarnapp.worker.DiagnosisKeyRetrievalOneTimeWorker
 import io.kotest.matchers.shouldBe
 import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -35,11 +33,6 @@ class CWAWorkerFactoryTest : BaseTest() {
         workerFactories[DiagnosisKeyRetrievalOneTimeWorker::class.java] = Provider { ourFactory }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     fun createInstance() = CWAWorkerFactory(
         workerFactories
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/VerificationModuleTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/VerificationModuleTest.kt
index 8ea767b58..32eb9f446 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/VerificationModuleTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/VerificationModuleTest.kt
@@ -4,7 +4,6 @@ import android.content.Context
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.verify
@@ -35,7 +34,6 @@ class VerificationModuleTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         testDir.deleteRecursively()
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationApiV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationApiV1Test.kt
index 3fe5a0c47..74f8ea11f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationApiV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationApiV1Test.kt
@@ -5,7 +5,6 @@ import de.rki.coronawarnapp.http.HttpModule
 import de.rki.coronawarnapp.verification.VerificationModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import kotlinx.coroutines.runBlocking
@@ -43,7 +42,6 @@ class VerificationApiV1Test : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationServerTest.kt
index cc6754b83..20fa57386 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/verification/server/VerificationServerTest.kt
@@ -6,7 +6,6 @@ import de.rki.coronawarnapp.util.headerSizeIgnoringContentLength
 import de.rki.coronawarnapp.verification.VerificationModule
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -47,7 +46,6 @@ class VerificationServerTest : BaseIOTest() {
 
     @AfterEach
     fun teardown() {
-        clearAllMocks()
         webServer.shutdown()
         testDir.deleteRecursively()
     }
diff --git a/Corona-Warn-App/src/test/java/testhelpers/BaseTest.kt b/Corona-Warn-App/src/test/java/testhelpers/BaseTest.kt
new file mode 100644
index 000000000..3eaa6c4c8
--- /dev/null
+++ b/Corona-Warn-App/src/test/java/testhelpers/BaseTest.kt
@@ -0,0 +1,27 @@
+package testhelpers
+
+import io.mockk.unmockkAll
+import org.junit.jupiter.api.AfterAll
+import testhelpers.logging.JUnitTree
+import timber.log.Timber
+
+abstract class BaseTest {
+
+    init {
+        Timber.uprootAll()
+        Timber.plant(JUnitTree())
+        testClassName = this.javaClass.simpleName
+    }
+
+    companion object {
+        private var testClassName: String? = null
+
+        @JvmStatic
+        @AfterAll
+        fun onTestClassFinished() {
+            unmockkAll()
+            Timber.tag(testClassName).v("onTestClassFinished()")
+            Timber.uprootAll()
+        }
+    }
+}
diff --git a/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt b/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
index 9d495c8c2..663e4d8eb 100644
--- a/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
+++ b/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
@@ -4,10 +4,8 @@ import com.google.android.gms.nearby.exposurenotification.ExposureNotificationCl
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -26,11 +24,6 @@ class ExposureWindowProviderTest : BaseTest() {
         coEvery { googleENFClient.exposureWindows } returns MockGMSTask.forValue(emptyList())
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createProvider() = DefaultExposureWindowProvider(
         client = googleENFClient
     )
diff --git a/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt b/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
index f03b3bfa7..d0dffa6df 100644
--- a/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
+++ b/Corona-Warn-App/src/testDevice/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.server.protocols.internal.v2.RiskCalculationParamete
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -23,7 +22,6 @@ import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.TestCoroutineScope
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -91,11 +89,6 @@ class DefaultRiskLevelStorageTest : BaseTest() {
         coEvery { exposureWindowTables.deleteByRiskResultId(any()) } returns 1
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance(
         scope: CoroutineScope = TestCoroutineScope()
     ) = DefaultRiskLevelStorage(
diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
index f9b77f256..07e494877 100644
--- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
+++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/nearby/modules/exposurewindow/ExposureWindowProviderTest.kt
@@ -5,17 +5,15 @@ import de.rki.coronawarnapp.storage.TestSettings
 import de.rki.coronawarnapp.util.CWADebug
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 import testhelpers.gms.MockGMSTask
 import java.io.File
 
-class ExposureWindowProviderTest : BaseTest() {
+class ExposureWindowProviderTest : BaseTestInstrumentation() {
     @MockK lateinit var googleENFClient: ExposureNotificationClient
     @MockK lateinit var testSettings: TestSettings
     @MockK lateinit var fakeExposureWindowProvider: FakeExposureWindowProvider
@@ -29,11 +27,6 @@ class ExposureWindowProviderTest : BaseTest() {
         coEvery { googleENFClient.exposureWindows } returns MockGMSTask.forValue(emptyList())
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createProvider() = DefaultExposureWindowProvider(
         client = googleENFClient,
         testSettings = testSettings,
diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForApiFragmentViewModelTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForApiFragmentViewModelTest.kt
index f78db7fb6..6ba4b649f 100644
--- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForApiFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForApiFragmentViewModelTest.kt
@@ -4,17 +4,15 @@ import android.content.Context
 import de.rki.coronawarnapp.environment.EnvironmentSetup
 import de.rki.coronawarnapp.task.TaskController
 import io.mockk.MockKAnnotations
-import io.mockk.clearAllMocks
 import io.mockk.impl.annotations.MockK
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.extension.ExtendWith
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 import testhelpers.extensions.CoroutinesTestExtension
 import testhelpers.extensions.InstantExecutorExtension
 
 @ExtendWith(InstantExecutorExtension::class, CoroutinesTestExtension::class)
-class TestForApiFragmentViewModelTest : BaseTest() {
+class TestForApiFragmentViewModelTest : BaseTestInstrumentation() {
 
     @MockK private lateinit var context: Context
     @MockK lateinit var taskController: TaskController
@@ -25,9 +23,4 @@ class TestForApiFragmentViewModelTest : BaseTest() {
     fun setup() {
         MockKAnnotations.init(this)
     }
-
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
 }
diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
index e511f7bdb..7666b705e 100644
--- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/debugoptions/ui/DebugOptionsFragmentViewModelTest.kt
@@ -6,24 +6,22 @@ import de.rki.coronawarnapp.environment.EnvironmentSetup
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.mockk
 import io.mockk.verify
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 import testhelpers.TestDispatcherProvider
 import testhelpers.extensions.CoroutinesTestExtension
 import testhelpers.extensions.InstantExecutorExtension
 import testhelpers.flakyTest
 
 @ExtendWith(InstantExecutorExtension::class, CoroutinesTestExtension::class)
-class DebugOptionsFragmentViewModelTest : BaseTest() {
+class DebugOptionsFragmentViewModelTest : BaseTestInstrumentation() {
 
     @MockK private lateinit var environmentSetup: EnvironmentSetup
     @MockK private lateinit var context: Context
@@ -50,11 +48,6 @@ class DebugOptionsFragmentViewModelTest : BaseTest() {
         }
     }
 
-    @AfterEach
-    fun teardown() {
-        clearAllMocks()
-    }
-
     private fun createViewModel(): DebugOptionsFragmentViewModel = DebugOptionsFragmentViewModel(
         envSetup = environmentSetup,
         dispatcherProvider = TestDispatcherProvider()
diff --git a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
index c2b430f34..308b12ed3 100644
--- a/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
+++ b/Corona-Warn-App/src/testDeviceForTesters/java/de/rki/coronawarnapp/test/risk/storage/DefaultRiskLevelStorageTest.kt
@@ -11,7 +11,6 @@ import de.rki.coronawarnapp.server.protocols.internal.v2.RiskCalculationParamete
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
-import io.mockk.clearAllMocks
 import io.mockk.coEvery
 import io.mockk.coVerify
 import io.mockk.every
@@ -22,12 +21,11 @@ import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.TestCoroutineScope
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Instant
-import org.junit.jupiter.api.AfterEach
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
-import testhelpers.BaseTest
+import testhelpers.BaseTestInstrumentation
 
-class DefaultRiskLevelStorageTest : BaseTest() {
+class DefaultRiskLevelStorageTest : BaseTestInstrumentation() {
 
     @MockK lateinit var databaseFactory: RiskResultDatabase.Factory
     @MockK lateinit var database: RiskResultDatabase
@@ -90,11 +88,6 @@ class DefaultRiskLevelStorageTest : BaseTest() {
         coEvery { exposureWindowTables.deleteByRiskResultId(any()) } returns 1
     }
 
-    @AfterEach
-    fun tearDown() {
-        clearAllMocks()
-    }
-
     private fun createInstance() = DefaultRiskLevelStorage(
         scope = TestCoroutineScope(),
         riskResultDatabaseFactory = databaseFactory,
diff --git a/Corona-Warn-App/src/testShared/java/testhelpers/BaseTest.kt b/Corona-Warn-App/src/testShared/java/testhelpers/BaseTest.kt
deleted file mode 100644
index 8dbaf6bff..000000000
--- a/Corona-Warn-App/src/testShared/java/testhelpers/BaseTest.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package testhelpers
-
-import testhelpers.logging.JUnitTree
-import timber.log.Timber
-
-abstract class BaseTest {
-
-    init {
-        Timber.uprootAll()
-        Timber.plant(JUnitTree())
-    }
-}
diff --git a/Corona-Warn-App/src/testShared/java/testhelpers/BaseTestInstrumentation.kt b/Corona-Warn-App/src/testShared/java/testhelpers/BaseTestInstrumentation.kt
new file mode 100644
index 000000000..92f6170cf
--- /dev/null
+++ b/Corona-Warn-App/src/testShared/java/testhelpers/BaseTestInstrumentation.kt
@@ -0,0 +1,27 @@
+package testhelpers
+
+import io.mockk.unmockkAll
+import org.junit.AfterClass
+import testhelpers.logging.JUnitTree
+import timber.log.Timber
+
+abstract class BaseTestInstrumentation {
+
+    init {
+        Timber.uprootAll()
+        Timber.plant(JUnitTree())
+        testClassName = this.javaClass.simpleName
+    }
+
+    companion object {
+        private var testClassName: String? = null
+
+        @JvmStatic
+        @AfterClass
+        fun onTestClassFinished() {
+            unmockkAll()
+            Timber.tag(testClassName).v("onTestClassFinished()")
+            Timber.uprootAll()
+        }
+    }
+}
-- 
GitLab