A Vitest Environment
for unit testing UI5
code. Run your unit tests in a blazing fast way! Neither webserver nor browser are required. It runs in Node.js
and uses jsdom
to emulate browser environment.
See Vitest Environment and jsdom for more details.
Install vitest-environment-ui5
, and vitest
, as devDependencies:
$ npm i -D vitest vitest-environment-ui5
Vitest uses node
as default test environment. In order to change it to a different environment, vitest-environment-ui5
, we will either have to define it in vitest.config.js
or add a @vitest-environment
docblock at the top of the test file. See Vitest Config for more details.
vitest-environment-ui5
builds jsdom
from a local HTML file, no webserver required. The HTML file should contain the UI5
bootstrap, similar to this one: ui5 bootstrap.
You can change the UI5 bootstrap configuration as you wish, just like in your webapp. You can even open the file in a browser to see UI5
being loaded. However, no tests will be executed.
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
environment: "ui5",
environmentOptions: {
ui5: {
path: 'test/ui5-unit-test.html', // Path to the HTML file containing UI5 bootstrap
timeout: 200 // UI5 load timeout in ms, default is 100ms
}
}
}
});
/**
* @vitest-environment ui5
* @vitest-environment-options { "path": "test/ui5-unit-test.html" }
*/
import {expect, test} from 'vitest';
test('UI5 is loaded', () => {
expect(window.sap).toBeTruthy();
expect(sap).toBeTruthy();
expect(sap.ui.getCore()).toBeTruthy();
expect(sap.ui.version).toBeTruthy();
});
Run the tests with Vitest
CLI:
$ vitest
jsdom
is not a real browser, but gets the job done for unit testing. All major javascript frameworks use it today: React
, Vue
, Svelte
, and even our old friend jQuery
. It has over 20M weekly downloads in NPM!
Mauricio Lauffer
This project is licensed under the MIT License - see the LICENSE file for details.