Results of the testing investigation issued by
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
To run tests use yarn test command in the terminal in the project root folder. This command refers to the npm script in the package.json.
"test": "stripes test karma"
This command would produce the following output in the terminal:
...
To run tests with coverage change the command to look like below:
"test": "stripes test karma --coverage"
This would produce the additional output to the previous command in the terminal:
...
One of the main concepts of the BigTest is interactors. They are like wrappers of the components which allows to get information about component UI state (attribute, text, class). There are many helper methods to get information from the component which is stored in @bigtest/interactor package. For example in the code snippet below the attribute, is, hasClass are used to get information about UI state of the component. Particular interactor could contain as mach as needed of such helper fields. List of all interactors could found here. The source code is well documented with examples.
import {
interactor,
is,
attribute,
hasClass
} from '@bigtest/interactor';
import css from '../Button.css';
export default interactor(class ButtonInteractor {
static defaultScope = `.${css.button}`;
id = attribute('id');
href = attribute('href');
isAnchor = is('a');
isButton = is('button');
rendersDefault = hasClass(css.default);
rendersPrimary = hasClass(css.primary);
rendersBottomMargin0 = hasClass(css.marginBottom0)
});
Setup
ui-eholdings repo uses BigTest for E2E tests. Inside it there is a flow which sets up the entire Folio application with mirage for mocking backend, mounts it, and tears it down. For this purpose the describeApplication helper is used from the bigtest/helpers directory. Use this helper for end-to-end acceptance testing instead of the normal describe. The actual tests should sit inside the bigtest/tests directory.
describeApplication('Acceptance', function() {
it('should show something awesome', function() {
expect($('h1')).to.have.text('something awesome');
});
});
Make sure to include needed dependencies in the package.json like @bigtest/mocha and @bigtest/mirage. See package.json from ui-eholdings repo for more reference.
...
- Stripes component testing: BigTests: Tutorial
- https://github.com/bigtestjs/react
- https://github.com/bigtestjs and https://bigtestjs.io/
- BigTest Mirage overview
- Pact overview
- Big Testing in React
- FOLIO UI Testing Team
...