Skip to content

Instantly share code, notes, and snippets.

@theapache64
Created September 14, 2021 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theapache64/8c5b0330ea4bd8bf72b89527c15206b7 to your computer and use it in GitHub Desktop.
Save theapache64/8c5b0330ea4bd8bf72b89527c15206b7 to your computer and use it in GitHub Desktop.
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import org.junit.Assert
import org.junit.Before
import org.junit.Rule
import org.junit.Test
class ExceptionTest {
@get:Rule
val composeRule = createComposeRule()
companion object {
private const val ACTION_THROW_ERROR = "THROW ERROR"
}
@Before
fun beforeAll() {
composeRule.setContent {
Button(onClick = { throw IllegalArgumentException() }) {
Text(text = ACTION_THROW_ERROR)
}
}
}
@Test(expected = IllegalArgumentException::class)
fun throwsError_1() {
composeRule.onNodeWithText(ACTION_THROW_ERROR).performClick()
}
@Test
fun throwsError_2() {
try {
composeRule.onNodeWithText(ACTION_THROW_ERROR).performClick()
assert(false)
} catch (e: IllegalArgumentException) {
assert(true)
}
}
@Test
fun throwsError_3() {
Assert.assertThrows(IllegalArgumentException::class.java) {
composeRule.onNodeWithText(ACTION_THROW_ERROR).performClick()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment