3.2.2 • Published 3 years ago

@sap/xsjs-test v3.2.2

Weekly downloads
540
License
See LICENSE file
Repository
-
Last release
3 years ago

@sap/xsjs-test

Unit test framework for the compatibility layer (XS runtime)

Simple steps to use xsjs-test in your project:

  • Declare a dev dependency to @sap/xsjs-test in your XSJS application project (package.json)
  • Your tests are in folder test/ parallel to package.json and lib/
  • Configure a xstest script in your application package.json which runs xstest script
  • Run with npm run xstest

Details

1) Dev dependency to @sap/xsjs-test Please verify which version of @sap/xsjs-test is released and refer to it accordingly. Dev dependency means that @sap/xsjs-test will be installed only in local dev installation, not in productive installation. Another option would be to install @sap/xsjs-test globally on your PC:

npm install -g @sap/xsjs-test

Then you do not need to include it in dev dependency, it is visible everywhere on your workstation.

2) Test folder Normally xsjs runtime files are under xsjs/ folder. So following paths are expected: <>/xsjs/package.json <>/xsjs/lib/ <>/xsjs/test/ The last path is where the tests are expected. Of course you are free to put the tests in another folder, but then a special configuration is required.

3) Test script There is a normal binary script defined in bin folder. The normal way would be to define a script in the application package.json

"scripts": {
  "xstest" : "xstest"
  }

4) Test execution

npm run xstest

5) Example configuration in file ./test/xstest.json

{
    test: {
        format: "xml", // optional, default: "html"
        pattern: ".*[Tt]Test", // optional, default: "".*[Tt]Test"
        reportdir: "test results folder", // optional, default: "."
        filename: "test results file name without extension" // optional, default: "report"
    },
    coverage: {
        reporting: {
            reports: ["json"] // default: "html"
        },
        dir: "coverage results folder", // optional, default: "{test.reportdir}/coverage"
        filename: "coverage results file name without extension" // optional, default "coverage"
    }
}

Known Restrictions

  • jasmine.callHTTPService() (see http://help.sap.com/hana/SAP_HANA_XS_Unit_JavaScript_API_Reference_en/jasmine.html ) is not supported because of the different underlying architecture of XSA. Instead of writing integration tests going through http, you should rely on pure unit tests to check the expected responses.
  • jasmine.tags is not supported.
  • jasmine.addProfile() is not supported.
  • describe( ... ).x() is not supported.
  • spys on globals like Date, Array, etc. won't work because each xsjslib is executed in a separate context. Try to stub/spy/mock via local members of your test instead.
  • jasmine.hdbConnection not supported (use jasmine.dbConnection)
  • jasmine.log is not supported (use console.log)
  • describeDB() and xdescribeDB() are not supported because they were already deprecated before (see http://help.sap.com/hana/SAP_HANA_XS_Unit_JavaScript_API_Reference_en/global.html#describeDb )
  • jasmine expect().toThrowError() is not supported (use toThrow(new Error()) instead)
  • tableUtils::copy*UserSchema() (http://help.sap.com/hana/SAP_HANA_XS_Unit_JavaScript_API_Reference_en/module-tableUtils-TableUtils.html) are not supported on HDI because there is a) no schema to copy from and b) by default no writable user schema
  • tableUtils.fillFromCsvFile() is not supported. Use HDI *.tableimport files instead to fill your HDI container with test data.
  • mockstar is discouraged/deprecated. Use HDI containers instead. If you need to reference larger test data, use HDI synonyms.

License

This package is provided under the terms of the SAP Developer License Agreement.

3.2.2

3 years ago

2.0.15

4 years ago

2.0.16

4 years ago

2.0.7

4 years ago

3.1.3

4 years ago

2.0.14

4 years ago

2.0.2

4 years ago

3.0.2

4 years ago

2.0.13

4 years ago

2.0.6

4 years ago

3.1.2

4 years ago

2.0.9

4 years ago

3.0.0

4 years ago