Salesforce Lightning Testing Service: An Introduction

August 19, 2020by Ananya Mohapatra

The Salesforce ecosystem is highly customizable and equally complex. Salesforce Lightning is a component-based framework for app development and consists of various tools, technologies, and frameworks to facilitate easy and efficient development.

As your Lightning Components become more complex, the possibility of errors and defects in the code increases. It is therefore of utmost importance to ensure that all the enhancements and features don’t crash or compromise other components.

The best way to ensure this doesn’t happen is to use automated testing, which has various benefits like:

  • Ease of mitigating risks and verify that the components work as designed.
  • Automated tests help you carry out a repeatable and predictable assessment of your code.
  • Automated tests help you evaluate the impact of changes on your code.

Lightning Testing Service (LTS) framework consists of tools that help you in testing the JavaScript in your Lightning Components. With a suite of tools and services integrated with Salesforce, LTS eases the process of testing your Lightning Components. This tool is an effective way to ensure that all your lightning components work as expected. The tool supports standard JavaScript frameworks such as Mocha and Jasmine.

Lightning Testing Service consists of the following components:

  1. Wrappers for using popular JavaScript testing frameworks within your Salesforce org. At present, Salesforce provides wrappers for Jasmine and Mocha, but users can create their own wrappers compatible with other frameworks.
  2. A utility object to facilitate easy integration of your tests with the Lightning components. Using the object, you can instantiate components, fire application events, etc.
  3. Integration with Salesforce DX enables you to run tests from the command line.

Installing LTS is a straightforward task and can be done in two ways:

  • Writing a one-line command in Salesforce CLI
  • Manually installing the unmanaged package in case you aren’t using Salesforce CLI

Whichever way the LTS is installed, the LTS package includes the following items:

  1. Example test suites- both Jasmine JavaScript files and Mocha JavaScript files
  2. Example components to be tested, an apex class, and a custom label
  3. LTS infrastructure that includes frameworks and wrappers for Jasmine and Mocha, LTS test utilities, test runner component, and a wrapper test app.

Once LTS is installed, users can explore the existing test suites, as well as write their own tests. All testable components are named beginning with “eg” and can be accessed just like any other Auro component. The example tests are included in the form of static resources. To write your own tests, you can go through a separate document that describes the flow and lifecycle of using the LTS to automate testing. The Lightning Test Service facilitates easy testing of your Lightning components using popular JavaScript frameworks such as Jasmine and Mocha.

To know more about Lightning Testing & how to implement an efficient LTS framework, please get in touch with our certified Lightning QA experts.