Skip to main content

Module 26: Testing in SAPUI5

Testing ensures that SAPUI5 applications are stable, maintainable, and upgrade-safe.
In enterprise projects, testing is not optional—it is critical for quality and CI/CD readiness.

This module covers:

  • Unit testing with QUnit
  • Integration testing with OPA5
  • Mock servers
  • Test-driven development (TDD)
  • Code coverage

1. Why Testing Matters in UI5


Benefits of Testing

  • Prevent regressions
  • Validate business logic
  • Enable safe refactoring
  • Support CI/CD pipelines
SAP Reality

Most production UI5 bugs are caused by missing tests, not framework issues.


2. Unit Testing with QUnit


What is QUnit?

QUnit is the default unit testing framework for SAPUI5:

  • Lightweight
  • JavaScript-based
  • Integrated with UI5

What to Unit Test

  • Formatter functions
  • Utility methods
  • Controller helper logic
  • Model logic (JSONModel)
Rule

Unit tests should not depend on backend services.


QUnit Test Structure

QUnit.module("Formatter Tests");

QUnit.test("Amount formatter", function (assert) {
var sResult = formatter.formatAmount(100);
assert.equal(sResult, "100.00", "Formatted correctly");
});

Running QUnit Tests

/webap/test/unit/unitTests.qunit.html
Tip

Unit tests run fast and are executed frequently.


3. OPA5 Integration Tests


What is OPA5?

OPA5 is used for:

  • End-to-end UI testing
  • Simulating user interactions
  • Validating navigation and flows

What to Test with OPA5

  • App startup
  • Navigation between views
  • Button clicks
  • Form submission
  • Table interactions

OPA5 Test Example

opaTest("Should see the main page", function (Given, When, Then) {
Given.iStartMyApp();
Then.onTheMainPage.iSeeThePage();
});
Key Difference

QUnit tests logic, OPA5 tests behavior.


4. Mock Servers


Why Mock Servers?

Mock servers:

  • Simulate OData services
  • Remove backend dependency
  • Enable offline testing

UI5 MockServer

var oMockServer = new sap.ui.core.util.MockServer({
rootUri: "/sap/opu/odata/sap/Z_SALES_SRV/"
});
oMockServer.simulate("metadata.xml", "mockdata/");
oMockServer.start();

Benefits of Mock Servers

  • Faster tests
  • Stable test data
  • Independent frontend development
Best Practice

Always use mock servers for unit and integration tests.


5. Test-Driven UI5 Development (TDD)


What is TDD?

TDD follows:

  • Write Test → Write Code → Refactor

TDD in UI5

  • Write QUnit tests first
  • Implement controller/formatter logic
  • Refactor safely
Enterprise Advantage

TDD drastically reduces regression bugs.


6. Code Coverage


What is Code Coverage?

Code coverage measures:

  • How much code is tested
  • Which parts are untested

Coverage Tools

  • Istanbul (nyc)
  • Karma (with UI5)
  • CI pipeline tools

Coverage Goals

TypeTarget
Unit Tests70–80%
Critical Logic100%
Reality

High coverage ≠ high quality, but low coverage = risk.


7. Testing in CI/CD Pipelines


Typical Pipeline Flow

Commit

Lint

QUnit Tests

OPA5 Tests

Build

Deploy
Modern Practice

Fail the pipeline if tests fail.


8. Common Testing Mistakes

Avoid These
  • Skipping tests due to deadlines
  • Testing against real backend
  • UI-only testing without unit tests
  • Ignoring flaky tests

9. Interview-Grade Explanation

Q: How do you test SAPUI5 applications?

Answer:

I use QUnit for unit testing controller logic and formatters, OPA5 for end-to-end integration testing, mock servers to decouple from backend services, and integrate tests into CI/CD pipelines to ensure quality and regression safety.


10. Summary

  • QUnit handles unit testing
  • OPA5 handles integration testing
  • Mock servers decouple backend
  • TDD improves reliability
  • Code coverage highlights risk
  • Testing enables safe CI/CD

11. What’s Next?

➡️ Module 27: Logging, Monitoring & Troubleshooting in UI5

Learning Tip

Untested UI5 code is technical debt waiting to explode.