Automated testing with the BlackBerry Dynamics sample apps

The sample apps included in the BlackBerry Dynamics SDK have been integrated with the BlackBerry Dynamics Automated Test Support Library (ATSL). Each sample app includes test code that executes automated tests of processing and behavior.

You can use the integration of the ATSL in any sample app as a guide for integrating the library with your own BlackBerry Dynamics apps. Note the following details about the ATSL integration:

Item

Description

Build target for testing

Each app has an androidTest build target that the Android Plugin for Gradle can use. For more information about the Android Plugin for Gradle, see Android Studio: Configure your build.

Code for JUnit tests

The test code is located in the sub-directory <sample_app>/tests/<sample_app_package>/test/.

The code is based on JUnit4. You can run tests with AndroidJUnitRunner.

Use of ATSL for interaction with BlackBerry Dynamics screens

The test code uses helper functions in the ATSL. For example, the following code executes the entire activation process for the app:

BBDActivationHelper.loginOrActivateApp()

The user's email, access key, and password are read from a file in JSON format (see Preparing for automated testing).

You can run ATSL helper functions in the JUnit assertion programming interface. For example:

assertTrue("Failed to provision AppKinetics sample app.", BBDActivationHelper.loginOrActivateApp());

This assertion will fail if activation fails.

Each BlackBerry Dynamics screen is represented by an object that provides convenient methods to interact with the UI elements that it consists of.

You can use the following snippet to enter user credentials and start the activation process using credentials that are not stored in the JSON file:

BBDActivationUI activationScreen = new BBDActivationUI(uiAutomatorUtils.getAppPackageName());
activationScreen.enterUserLogin("email@example.com");
activationScreen.enterKey("12345", "12345", "12345");
activationScreen.clickOK();

Use of ATSL for general interactions

The test code also uses helper functions in the ATSL for general interactions (for example, checking that an item exists in the user interface and then interacting with that item). See the following example:

uiAutomatorUtils.isTextShown("Retrieving data");

The ATSL functions handle this by using UIAutomator.

Broadcast receiver for authorization events

The test code registers a broadcast receiver that receives authorization events from the BlackBerry Dynamics SDK:

GDAndroid.getInstance().registerReceiver
(GDSDKStateReceiver.getInstance(),
GDSDKStateReceiver.getInstance().getIntentFilter());

Broadcast receiver registration supports multiple receiver classes and doesn’t block GDStateListener or GDAppEventListener implementations, if any. The broadcast receiver code is in the GDSDKStateReceiver class.