Android Testing and Test Automation
Introduction
The Android project utilizes https://junit.org/junit5/ and JUnit 5 for Android for performing unit testing and test automation. JUnit5 was chosen for its functionality and its clarity.
Requirements
Android Studio
openjdk 11.0.11 2021-04-20 or newer
Related Jira Issues
https://unity3d.atlassian.net/browse/FNSDKEXT-93
https://unity3d.atlassian.net/browse/FNSDKEXT-122
https://unity3d.atlassian.net/browse/FNSDKEXT-181
https://unity3d.atlassian.net/browse/FNSDKEXT-182
https://unity3d.atlassian.net/browse/FNSDKEXT-243
Usage
Implementing Tests
tl;dr https://www.lordcodes.com/articles/testing-on-android-using-junit-5
Existing Project
Basic usage of the existing testing project requires no special setup, as it was created as a JUnit5 test project in the first place; review the JUnit5 documentation for detail-in-depth.
Creating a New Project
If a new testing project needs to be created, here is a quick-and-dirty rundown:
Add the following block of code to the project
build.gradle
file, before theplugins { ... }
blockbuildscript { dependencies { classpath("de.mannodermaus.gradle.plugins:android-junit5:1.8.2.0") } }
Change
1.8.2.0
(plugin version number) as necessary.
Add the following line of code to the project
build.gradle
file, between theandroid { ... }
anddependencies { ... }
blocks:apply plugin: 'de.mannodermaus.android-junit5'
Add the following block of code to the project
build.gradle
file, in the existingdependencies { ... }
block (not the one in thebuildscript
scope, but the one that is its own scope, following theapply plugin
line):dependencies { testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.2" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.3.2" testImplementation "org.junit.jupiter:junit-jupiter-params:5.3.2" // other dependencies... }
Executing Tests
To launch a test (or suite of tests):
Open the SDK project in Android Studio.
Navigate to the testing file that contains the test (or test suite) that you would like to execute.
Click the green arrow beside the test (or test suite) that you want to run.
Note that the majority of tests require a connected Android device as well as a VictoR device that is available (i.e. at least one VictoR device that the Android device executing the test(s) can scan for and connect to).