Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/Artifacts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ object Artifacts {
val Runner = Deployed(
platform = Android(minSdk = 14),
groupId = groupId,
artifactId = "android-instrumentation-test-runner",
artifactId = "android-test-runner",
currentVersion = currentVersion,
latestStableVersion = latestStableVersion,
license = license,
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ object Versions {

const val aapt2: String = "3.2.1-4818971"

const val com_android_tools_build_gradle: String = "3.4.0-rc02"
const val com_android_tools_build_gradle: String = "3.4.0-rc03"
const val com_android_tools_build_gradle_32x: String = "3.2.1"
const val com_android_tools_build_gradle_33x: String = "3.3.2"
const val com_android_tools_build_gradle_34x: String = "3.4.0-rc02"
const val com_android_tools_build_gradle_34x: String = "3.4.0-rc03"
const val com_android_tools_build_gradle_35x: String = "3.5.0-alpha07"

const val lint_gradle: String = "26.2.1"
Expand Down
5 changes: 3 additions & 2 deletions instrumentation/core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,15 @@ tasks.withType<Test> {
}

dependencies {
implementation(Libs.junit_jupiter_api)
implementation(Libs.kotlin_stdlib)
implementation(Libs.androidx_test_core)
implementation(Libs.junit_jupiter_api)
api(Libs.androidx_test_core)

// This is required by the "instrumentation-runner" companion library,
// since it can't provide any JUnit 5 runtime libraries itself
// due to fear of prematurely incrementing the minSdkVersion requirement.
runtimeOnly(Libs.junit_platform_runner)
runtimeOnly(Libs.junit_jupiter_engine)

androidTestImplementation(Libs.junit_jupiter_api)
androidTestImplementation(Libs.espresso_core)
Expand Down
13 changes: 10 additions & 3 deletions instrumentation/sample/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import de.mannodermaus.gradle.plugins.junit5.junitPlatform
import org.gradle.api.tasks.testing.logging.TestLogEvent
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

buildscript {
repositories {
Expand Down Expand Up @@ -65,6 +66,12 @@ android {
}
}

tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}

tasks.withType<Test> {
testLogging.events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)
}
Expand All @@ -81,8 +88,8 @@ dependencies {

// Android Instrumentation Tests wth JUnit 5
androidTestImplementation(Libs.junit_jupiter_api)
androidTestRuntimeOnly(Libs.junit_jupiter_engine)
androidTestRuntimeOnly(Libs.junit_platform_runner)
androidTestImplementation(project(":api"))
androidTestImplementation(Libs.junit_jupiter_params)
androidTestImplementation(Libs.espresso_core)
androidTestImplementation(project(":core"))
androidTestRuntimeOnly(project(":runner"))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package de.mannodermaus.sample

import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import de.mannodermaus.junit5.ActivityScenarioExtension
import de.mannodermaus.junit5.sample.ActivityOne
import de.mannodermaus.junit5.sample.R
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.RepeatedTest
import org.junit.jupiter.api.RepetitionInfo
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.RegisterExtension
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource

class ActivityOneTest {

@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<ActivityOne>()

@Test
fun testExample(scenario: ActivityScenario<ActivityOne>) {
onView(withId(R.id.textView)).check(matches(withText("0")))
}

@ValueSource(strings = ["value1", "value2"])
@ParameterizedTest
fun parameterizedTestExample(value: String, scenario: ActivityScenario<ActivityOne>) {
scenario.onActivity {
assertEquals(0, it.getClickCount())
it.setButtonLabel(value)
}

onView(withId(R.id.button)).check(matches(withText(value)))
onView(withId(R.id.button)).perform(click())

scenario.onActivity {
assertEquals(1, it.getClickCount())
}
}

@RepeatedTest(3)
fun repeatedTestExample(repetitionInfo: RepetitionInfo, scenario: ActivityScenario<ActivityOne>) {
val count = repetitionInfo.currentRepetition

for (i in 0 until count) {
onView(withId(R.id.button)).perform(click())
}

scenario.onActivity {
assertEquals(count, it.getClickCount())
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,31 @@
package de.mannodermaus.junit5.sample

import android.app.Activity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

class ActivityOne : Activity() {

private val textView by lazy { findViewById<TextView>(R.id.textView) }
private val button by lazy { findViewById<Button>(R.id.button) }

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_one)

button.setOnClickListener {
val currentClickCount = getClickCount()
val newClickCount = currentClickCount + 1
textView.text = newClickCount.toString()
}
}

fun getClickCount(): Int {
return textView.text.toString().toInt()
}

fun setButtonLabel(newText: String) {
button.text = newText
}
}
19 changes: 19 additions & 0 deletions instrumentation/sample/src/main/res/layout/activity_one.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"/>

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"/>
</LinearLayout>