From 240840d74c49115054d2fa69d1ad2954e88173f1 Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Thu, 18 Jan 2024 13:29:16 +0530 Subject: [PATCH] add ui test --- app/build.gradle | 2 +- .../AssuranceControlsActivityTest.kt | 42 ++++++++++++ .../assurance/AssuranceControlsActivity.kt | 4 +- .../AssuranceControlsActivityTest.kt | 65 +++++++++++++++++++ 4 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 app/src/androidTest/java/com/example/hpostesting/AssuranceControlsActivityTest.kt create mode 100644 app/src/test/java/com/example/hpostesting/AssuranceControlsActivityTest.kt diff --git a/app/build.gradle b/app/build.gradle index 1ac71e6..5ba5aa5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -91,7 +91,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' - androidTestImplementation "androidx.work:work-testing-ktx:2.9.0" + androidTestImplementation "androidx.work:work-testing:2.9.0" androidTestImplementation 'androidx.test:core-ktx:1.5.0' // mockk diff --git a/app/src/androidTest/java/com/example/hpostesting/AssuranceControlsActivityTest.kt b/app/src/androidTest/java/com/example/hpostesting/AssuranceControlsActivityTest.kt new file mode 100644 index 0000000..db5c991 --- /dev/null +++ b/app/src/androidTest/java/com/example/hpostesting/AssuranceControlsActivityTest.kt @@ -0,0 +1,42 @@ +package com.example.hpostesting + +import androidx.test.core.app.ActivityScenario +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.matcher.ViewMatchers.withId + +import androidx.test.ext.junit.runners.AndroidJUnit4 +//import com.example.hpostesting.R +import com.example.hpostesting.presentation.assurance.AssuranceControlsActivity +import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBinding +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +@RunWith(AndroidJUnit4::class) +class AssuranceControlsActivityTest { +// +// @Test +// fun testViewBinding() { +// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java) +// activityScenario.onActivity { activity -> +// assertNotNull(activity.binding) +// assertEquals(ActivityAssuranceControlsBinding::class.java, activity.binding.javaClass) +// } +// } +// +// @Test +// fun testSharedPreferencesInitialization() { +// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java) +// activityScenario.onActivity { activity -> +// assertNotNull(activity.sharedPreference) +// assertEquals("HEMOCUBE", activity.sharedPreference.getString("HEMOCUBE", null)) +// } +// } + +// @Test +// fun testFragmentTransaction() { +// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java) +// onView(withId(R.id.fgAssuranceControls)).check(matches(isDisplayed())) // Using Espresso for UI verification +// } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt index 1774a02..307ac08 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt @@ -9,8 +9,8 @@ import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBindi @AndroidEntryPoint class AssuranceControlsActivity: AppCompatActivity() { - private lateinit var binding: ActivityAssuranceControlsBinding - private lateinit var sharedPreference: SharedPreferences + lateinit var binding: ActivityAssuranceControlsBinding + lateinit var sharedPreference: SharedPreferences override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/test/java/com/example/hpostesting/AssuranceControlsActivityTest.kt b/app/src/test/java/com/example/hpostesting/AssuranceControlsActivityTest.kt new file mode 100644 index 0000000..c042e2d --- /dev/null +++ b/app/src/test/java/com/example/hpostesting/AssuranceControlsActivityTest.kt @@ -0,0 +1,65 @@ +import android.content.Context +import android.content.SharedPreferences +import android.os.Bundle +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import com.example.hpostesting.presentation.assurance.AssuranceControlsActivity +import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBinding +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito +import org.mockito.junit.MockitoJUnitRunner + +@RunWith(MockitoJUnitRunner::class) +class AssuranceControlsActivityTest { +// +// @Mock +// private lateinit var mockContext: Context +// +// @Mock +// private lateinit var mockSharedPreferences: SharedPreferences +// +// @Mock +// private lateinit var mockBinding: ActivityAssuranceControlsBinding +// +// @Mock +// private lateinit var mockFragmentManager: FragmentManager +// +// @Mock +// private lateinit var mockFragmentTransaction: FragmentTransaction +// +// private lateinit var assuranceControlsActivity: AssuranceControlsActivity +// +// @Before +// fun setup() { +// Mockito.`when`(mockContext.getSharedPreferences(Mockito.anyString(), Mockito.anyInt())) +// .thenReturn(mockSharedPreferences) +// +//// Mockito.`when`(mockBinding.fgAssuranceControls).thenReturn(mockFragmentContainer) +// +// assuranceControlsActivity = AssuranceControlsActivity() +// assuranceControlsActivity.binding = mockBinding +// +// assuranceControlsActivity.supportFragmentManager = mockFragmentManager +// Mockito.`when`(mockFragmentManager.beginTransaction()).thenReturn(mockFragmentTransaction) +// } +// +// @Test +// fun onCreate_shouldInitializeViews() { +// assuranceControlsActivity.onCreate(Bundle()) +// +// // Verify that the layout inflater is used to inflate the binding +// Mockito.verify(mockBinding).inflate(Mockito.any(android.view.LayoutInflater::class.java)) +// +// // Verify that the content view is set to the root of the binding +// Mockito.verify(assuranceControlsActivity).setContentView(mockBinding.root) +// +// // Verify that the fragment transaction is committed +// Mockito.verify(mockFragmentTransaction).commit() +// } + + // Add more tests as needed to cover different scenarios +}