Converted Android tests into Robolectric tests

commit_hash:2e37ee6831a726bd4db706afd1cc9b656e0fbab8
This commit is contained in:
pkurchatov
2026-03-19 10:53:35 +03:00
parent 1fbb7df2e5
commit c96ccc321f
8 changed files with 24 additions and 29 deletions
+4 -4
View File
@@ -603,10 +603,6 @@
"client/android/compose-interop/src/main/java/com/yandex/div/compose/interop/DivViewInterop.kt":"divkit/public/client/android/compose-interop/src/main/java/com/yandex/div/compose/interop/DivViewInterop.kt",
"client/android/compose/build.gradle.kts":"divkit/public/client/android/compose/build.gradle.kts",
"client/android/compose/proguard-rules.pro":"divkit/public/client/android/compose/proguard-rules.pro",
"client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt":"divkit/public/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt",
"client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt":"divkit/public/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt",
"client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt":"divkit/public/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt",
"client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt":"divkit/public/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt",
"client/android/compose/src/main/kotlin/com/yandex/div/compose/DivComposeConfiguration.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivComposeConfiguration.kt",
"client/android/compose/src/main/kotlin/com/yandex/div/compose/DivContext.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivContext.kt",
"client/android/compose/src/main/kotlin/com/yandex/div/compose/DivException.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivException.kt",
@@ -651,8 +647,12 @@
"client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/BorderModifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/BorderModifiers.kt",
"client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/Modifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/Modifiers.kt",
"client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/SizeModifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/SizeModifiers.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt",
"client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt",
"client/android/div-common.gradle":"divkit/public/client/android/div-common.gradle",
"client/android/div-core/build.gradle":"divkit/public/client/android/div-core/build.gradle",
"client/android/div-core/proguard-rules.pro":"divkit/public/client/android/div-core/proguard-rules.pro",
+3 -10
View File
@@ -9,11 +9,6 @@ apply(from = "../div-tests.gradle")
android {
namespace = "com.yandex.div.compose"
sourceSets {
getByName("androidTest").kotlin.srcDirs("src/commonTest/kotlin")
getByName("test").kotlin.srcDirs("src/commonTest/kotlin")
}
}
dependencies {
@@ -32,10 +27,8 @@ dependencies {
ksp(libs.yatagan.processor.ksp)
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
androidTestImplementation(libs.mockito.android)
androidTestImplementation(libs.mockito.kotlin)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
testImplementation(libs.androidx.compose.ui.test.junit4)
testImplementation(libs.androidx.compose.ui.test.manifest)
}
@@ -8,6 +8,7 @@ import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.yandex.div.core.expression.variables.DivVariableController
import com.yandex.div.data.Variable
import com.yandex.div.json.expressions.Expression
@@ -18,7 +19,9 @@ import com.yandex.div2.DivText
import com.yandex.div2.DivVariable
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class DivViewTest {
@get:Rule
@@ -32,7 +35,7 @@ class DivViewTest {
)
@Test
fun simpleTextIsDisplayed() {
fun `simple text is displayed`() {
setContent(
text(text = constant("Hello!"))
)
@@ -41,7 +44,7 @@ class DivViewTest {
}
@Test
fun textWithExpressionIsDisplayed() {
fun `text with expression is displayed`() {
setContent(
text(text = expression("value = @{counter}")),
variables = listOf(integerVariable("counter", 10))
@@ -51,7 +54,7 @@ class DivViewTest {
}
@Test
fun textWithHostVariableIsDisplayed() {
fun `text with host variable is displayed`() {
variableController.declare(Variable.IntegerVariable("counter", 10))
setContent(
@@ -62,7 +65,7 @@ class DivViewTest {
}
@Test
fun cardVariableShadowsHostVariable() {
fun `card variable shadows host variable`() {
variableController.declare(Variable.IntegerVariable("counter", 10))
setContent(
@@ -74,7 +77,7 @@ class DivViewTest {
}
@Test
fun textChangesWhenVariableChanges() {
fun `text changes when variable changes`() {
variableController.declare(Variable.IntegerVariable("counter", 10))
setContent(
@@ -87,7 +90,7 @@ class DivViewTest {
}
@Test
fun textChangesWhenSetVariableActionIsTriggered() {
fun `text changes when set_variable action is triggered`() {
setContent(
text(
action = action(url = "div-action://set_variable?name=counter&value=20"),
@@ -105,14 +108,10 @@ class DivViewTest {
}
private fun setContent(content: Div, variables: List<DivVariable>? = null) {
setContent(data(content, variables))
}
private fun setContent(data: DivData) {
rule.setContent {
val divContext = configuration.createContext(baseContext = LocalContext.current)
CompositionLocalProvider(LocalContext provides divContext) {
DivView(data = data)
DivView(data = data(content, variables))
}
}
}
@@ -1,5 +1,6 @@
package com.yandex.div.compose.actions
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.yandex.div.compose.DivReporter
import com.yandex.div.compose.action
import com.yandex.div.compose.constant
@@ -17,9 +18,8 @@ import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.mock
import org.robolectric.RobolectricTestRunner
@RunWith(RobolectricTestRunner::class)
@RunWith(AndroidJUnit4::class)
class DivActionHandlerTest {
private val customActionHandler = CustomActionHandler()
private val reporter = mock<DivReporter>()
@@ -1,5 +1,6 @@
package com.yandex.div.compose.expressions
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.yandex.div.compose.TestReporter
import com.yandex.div.compose.expression
import com.yandex.div.core.expression.variables.DivVariableController
@@ -7,9 +8,8 @@ import com.yandex.div.data.Variable
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
@RunWith(RobolectricTestRunner::class)
@RunWith(AndroidJUnit4::class)
class DivComposeExpressionResolverTest {
private val variableController = DivVariableController()
@@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableLongStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.yandex.div.compose.TestReporter
import com.yandex.div.compose.expressions.DivComposeExpressionResolver
import com.yandex.div.compose.intExpression
@@ -16,8 +17,10 @@ import com.yandex.div.json.expressions.Expression
import org.junit.Assert.assertEquals
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.mock
@RunWith(AndroidJUnit4::class)
class ExpressionUtilsTest {
@get:Rule