You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+41
Original file line number
Diff line number
Diff line change
@@ -57,6 +57,47 @@ A linter is a static code analysis tool for identifying problematic patterns fou
57
57
58
58
*[Stylelint](https://github.com/stylelint/stylelint): It is a linter to identify and report errors and enforce conventions for styles.
59
59
60
+
## Testing
61
+
### Testing Types
62
+
63
+
* Unit test: Specify and test one point of the contract of single method of a class. This should have a very narrow and well defined scope. Complex dependencies and interactions to the outside world are stubbed or mocked.
64
+
65
+
* Integration test: Test the correct inter-operation of multiple subsystems. There is whole spectrum there, from testing integration between two classes, to testing integration with the production environment.
66
+
67
+
* Acceptance test: Test that a feature or use case is correctly implemented. It is similar to an integration test, but with a focus on the use case to provide rather than on the components involved.
68
+
69
+
* Functional test: Test features on the business requirements of the system.
70
+
71
+
* Smoke test: Initial tests to decide whether the system is good enough for continuous testing.
72
+
73
+
* Regression test: A test that was written when a bug was fixed. It ensures that this specific bug will not occur again.
74
+
75
+
* System test: Test the software as a black box.
76
+
77
+
* End-to-end test: Test a user behavior with the system in a complete application environment.
78
+
79
+
* Performance test: Test to check the behaviors of the system when it is under significant load.
80
+
81
+
### Testing Tools
82
+
83
+
* Test launchers: Launch tests in a browser or Node.js with user config using the CLI or UI. This can also be achieved by opening the browser manually - Karma, Jasmine, Jest, TestCafe, Cypress
84
+
85
+
* Testing structure providers: Help arranging test files - Mocha, Jasmine, Jest, Cucumber, TestCafe, Cypress
86
+
87
+
* Assertion functions: Verify whether the results a test returns are as expected - Chai, Jasmine, Jest, Unexpected, TestCafe, Cypress
88
+
89
+
* Generate and display test progress and results - Mocha, Jasmine, Jest, Karma, TestCafe, Cypress
90
+
91
+
* Mocks, spies, and stubs - Isolate certain parts of tests and catch their side effects - Sinon, Jasmine, enzyme, Jest, testdouble
92
+
93
+
* Generate and compare snapshots of component and data structures: Make sure changes from previous runs are intended - Jest, Ava
94
+
95
+
* Generate code coverage reports: Verify how much of the code is covered by the tests - Istanbul, Jest, Blanket
96
+
97
+
* Browser controllers: Simulate user actions for Functional Tests - Nightwatch, Nightmare, Phantom, Puppeteer, TestCafe, Cypress
98
+
99
+
* Visual regression tools: Compare the site to its previous versions visually by using image comparison techniques - Applitools, Percy, Wraith, WebdriverCSS
100
+
60
101
## Gists
61
102
Gists are a collection of code snippets for understanding the JavaScript concepts. It is also a resource to review before a frontend job interview.
0 commit comments