Add first Kaspresso test

This commit is contained in:
Kirill Kamakin
2022-12-06 20:16:48 +01:00
parent c88d7da866
commit 24388192e1
6 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Needed for screenshots in Kaspresso -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

View File

@@ -0,0 +1,32 @@
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 gq.kirmanak.mealient.screen.DisclaimerScreen
import gq.kirmanak.mealient.ui.activity.MainActivity
import org.junit.Rule
import org.junit.Test
@HiltAndroidTest
class FirstSetUpTest : TestCase() {
@get:Rule(order = 0)
var hiltRule = HiltAndroidRule(this)
@get:Rule(order = 1)
val mainActivityRule = activityScenarioRule<MainActivity>()
@Test
fun test() = run {
step("Ensure button is disabled") {
DisclaimerScreen {
okayButton {
isVisible()
isDisabled()
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
package gq.kirmanak.mealient
import android.app.Application
import android.content.Context
import androidx.test.runner.AndroidJUnitRunner
import dagger.hilt.android.testing.HiltTestApplication
class MealientTestRunner : AndroidJUnitRunner() {
override fun newApplication(
cl: ClassLoader?,
className: String?,
context: Context?,
): Application = super.newApplication(cl, HiltTestApplication::class.java.name, context)
}

View File

@@ -0,0 +1,13 @@
package gq.kirmanak.mealient.screen
import com.kaspersky.kaspresso.screens.KScreen
import gq.kirmanak.mealient.R
import gq.kirmanak.mealient.ui.activity.MainActivity
import io.github.kakaocup.kakao.text.KButton
object DisclaimerScreen : KScreen<DisclaimerScreen>() {
override val layoutId = R.layout.fragment_disclaimer
override val viewClass = MainActivity::class.java
val okayButton = KButton { withId(R.id.okay) }
}