Skip to content

Instantly share code, notes, and snippets.

View DmytroShuba's full-sized avatar
🏠
Working from home

Dmytro DmytroShuba

🏠
Working from home
View GitHub Profile
@DmytroShuba
DmytroShuba / JCTestingGettingStarted.kt
Created September 15, 2021 16:00
How to test Jetpack Compose - Getting started
def compose_version = '1.0.1'
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
@DmytroShuba
DmytroShuba / JCTestingLayout.kt
Created September 15, 2021 16:03
How to test Jetpack Compose - Layout
@Composable
fun MainScreen() {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.background(Color.White)
) {
Button(
@DmytroShuba
DmytroShuba / JCTestingRule.kt
Created September 15, 2021 16:04
How to test Jetpack Compose - Rule
class ExampleInstrumentedTest {
@get:Rule
val composeTestRule = createAndroidTestRule(MainActivity::class.java)
@DmytroShuba
DmytroShuba / JCTestingTest.kt
Created September 15, 2021 16:05
How to test Jetpack Compose - Test
@Test
fun testButtonClick() {
val button = composeTestRule.onNode(hasTestTag("yourTestTag"), useUnmergedTree = true)
button.assertIsDisplayed()
button.performClick()
}
@DmytroShuba
DmytroShuba / JCTestingTestButtonClick.kt
Created September 15, 2021 16:10
How to test Jetpack Compose - Test Button Click
@Test
fun testButtonClick() {
composeTestRule.setContent {
MyAppTheme {
MainScreen()
}
}
val button = composeTestRule.onNode(hasTestTag("yourTestTag"), true)
button.assertIsDisplayed()
@DmytroShuba
DmytroShuba / JCTestingTestButtonClick2.kt
Created September 15, 2021 16:11
How to test Jetpack Compose - Test Button Click 2
@Test
fun testButtonClick() {
composeTestRule.setContent {
Column {
Button(
onClick = {...},
modifier = Modifier.testTag("yourTestTag")
) {
Text(text = "Click")
}
@DmytroShuba
DmytroShuba / customTheme-MaterialTheme.kt
Created November 10, 2021 15:08
CreateCustomTheme - MaterialTheme
object MaterialTheme {
val colors: Colors
@Composable
@ReadOnlyComposable
get() = LocalColors.current
val typography: Typography
@Composable
@ReadOnlyComposable
get() = LocalTypography.current
val shapes: Shapes
@DmytroShuba
DmytroShuba / customTheme-MaterialTheme2.kt
Created November 10, 2021 15:11
CreateCustomTheme - MaterialTheme
@Composable
fun MaterialTheme(
colors: Colors = MaterialTheme.colors,
typography: Typography = MaterialTheme.typography,
shapes: Shapes = MaterialTheme.shapes,
content: @Composable () -> Unit
)
@DmytroShuba
DmytroShuba / appTheme.kt
Created November 10, 2021 15:11
CreateCustomTheme - AppTheme
object AppTheme {
val colors: AppColors
@Composable
@ReadOnlyComposable
get() = LocalColors.current
val typography: AppTypography
@Composable
@ReadOnlyComposable
get() = LocalTypography.current
val dimensions: AppDimensions
@DmytroShuba
DmytroShuba / AppColors.kt
Created November 10, 2021 15:12
CreateCustomTheme - AppColors
class AppColors(
primary: Color,
secondary: Color,
textPrimary: Color,
error: Color,
isLight: Boolean
) {
var primary by mutableStateOf(primary)
private set
var secondary by mutableStateOf(secondary)