This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'com.android.application' | |
apply plugin: 'android-apt' | |
android { | |
compileSdkVersion 25 | |
buildToolsVersion "25.0.0" | |
defaultConfig { | |
applicationId "com.alexzh.temperatureconverter" | |
minSdkVersion 14 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//ExternalModulesInProject/Application/app | |
apply plugin: 'com.android.application' | |
android { | |
compileSdkVersion 25 | |
buildToolsVersion "25.0.0" | |
defaultConfig { | |
applicationId "com.alexzh.application" | |
minSdkVersion 14 | |
targetSdkVersion 25 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.alexzh.recyclerviewsetemptyview; | |
import android.content.Context; | |
import android.support.annotation.Nullable; | |
import android.support.v7.widget.RecyclerView; | |
import android.util.AttributeSet; | |
import android.view.View; | |
public class EmptyRecyclerView extends RecyclerView { | |
private View mEmptyView; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object TestDataFactory { | |
fun randomString(): String { | |
return UUID.randomUUID().toString() | |
} | |
fun randomDouble(): Double { | |
return Math.random() | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependencies { | |
... | |
// Robolectric | |
testImplementation "org.robolectric:robolectric:$robolectric_version" // 4.1 | |
// Android test runner and rules | |
androidTestImplementation "androidx.test:runner:$test_runner_version" // 1.1.0 | |
androidTestImplementation "androidx.test:core:$test_core_version" // 1.1.0 | |
androidTestImplementation "androidx.test.ext:junit:$test_junit_version" // 1.1.0 | |
androidTestImplementation "androidx.test:rules:$test_rules_version" // 1.1.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Analytics { | |
private var startSessionTimestamp: Long = -1 | |
private val reporters = mutableListOf<AnalyticsReporter>() | |
fun addReporter(reporter: AnalyticsReporter) { | |
reporters.add(reporter) | |
} | |
fun startSession() { | |
startSessionTimestamp = Date().time |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RunWith(AndroidJUnit4::class) | |
class EspressoSignInTest { | |
@Rule @JvmField | |
val activityRule = ActivityTestRule<SignInActivity>(SignInActivity::class.java) | |
@Test | |
fun shouldDisplaySinInErrorWhenEmailIsIncorrect() { | |
val incorrectEmail = "test" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RunWith(AndroidJUnit4::class) | |
class UiAutomatorSignInTest { | |
companion object { | |
const val LAUNCH_TIMEOUT = 2_000L | |
const val APP_PACKAGE = "com.alex.mapnotes" | |
} | |
private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AppiumSignInTest { | |
private lateinit var appiumDriver: AppiumDriver<AndroidElement> | |
@Before | |
fun setup() { | |
val capabilities = DesiredCapabilities() | |
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android") | |
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554") | |
capabilities.setCapability("appPackage", "com.alex.mapnotes") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Criteria | Appium | Espresso | UiAutomator | |
---|---|---|---|---|
Execution Time | Slow (test case: 12.154 sec) | Fast (test case: 0.967 sec) | Medium (test case: 8.743 sec) | |
Supported languages | Java, Kotlin, C#, JavaScript, Python, Ruby | Java, Kotlin | Java, Kotlin | |
Test Type | Black Box | Gray Box | Black Box | |
Setup | Hard (separate module, capabilities (device, app, etc.)) | Easy (part of the project) | Easy (part of the project) |
OlderNewer