Extract base test case

This commit is contained in:
Kirill Kamakin
2022-12-16 22:10:03 +01:00
parent 0ebcc8709c
commit e16dee3ee5
2 changed files with 40 additions and 22 deletions

View File

@@ -0,0 +1,33 @@
package gq.kirmanak.mealient
import androidx.test.ext.junit.rules.activityScenarioRule
import com.kaspersky.kaspresso.testcases.api.testcase.TestCase
import dagger.hilt.android.testing.HiltAndroidRule
import gq.kirmanak.mealient.ui.activity.MainActivity
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
import org.junit.Rule
abstract class BaseTestCase : TestCase() {
@get:Rule(order = 0)
var hiltRule = HiltAndroidRule(this)
@get:Rule(order = 1)
val mainActivityRule = activityScenarioRule<MainActivity>()
lateinit var mockWebServer: MockWebServer
@Before
open fun setUp() {
mockWebServer = MockWebServer()
mockWebServer.start()
}
@After
fun tearDown() {
mockWebServer.shutdown()
}
}

View File

@@ -1,38 +1,23 @@
package gq.kirmanak.mealient package gq.kirmanak.mealient
import androidx.test.ext.junit.rules.activityScenarioRule
import com.kaspersky.kaspresso.testcases.api.testcase.TestCase
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealient.screen.BaseUrlScreen import gq.kirmanak.mealient.screen.BaseUrlScreen
import gq.kirmanak.mealient.screen.DisclaimerScreen import gq.kirmanak.mealient.screen.DisclaimerScreen
import gq.kirmanak.mealient.screen.RecipesListScreen import gq.kirmanak.mealient.screen.RecipesListScreen
import gq.kirmanak.mealient.ui.activity.MainActivity
import okhttp3.mockwebserver.MockWebServer
import org.junit.Rule
import org.junit.Test import org.junit.Test
@HiltAndroidTest @HiltAndroidTest
class FirstSetUpTest : TestCase() { class FirstSetUpTest : BaseTestCase() {
@get:Rule(order = 0) override fun setUp() {
var hiltRule = HiltAndroidRule(this) super.setUp()
@get:Rule(order = 1)
val mainActivityRule = activityScenarioRule<MainActivity>()
private lateinit var mockWebServer: MockWebServer
@Test
fun test() = before {
mockWebServer = MockWebServer()
mockWebServer.dispatch { url, _ -> mockWebServer.dispatch { url, _ ->
if (url == "/api/app/about") versionV1Response else notFoundResponse if (url == "/api/app/about") versionV1Response else notFoundResponse
} }
mockWebServer.start() }
}.after {
mockWebServer.shutdown() @Test
}.run { fun test() = run {
step("Ensure button is disabled") { step("Ensure button is disabled") {
DisclaimerScreen { DisclaimerScreen {
okayButton { okayButton {