diff --git a/radar/2019-11-01/cypress.md b/radar/2019-11-01/cypress.md new file mode 100644 index 0000000..15f2bc6 --- /dev/null +++ b/radar/2019-11-01/cypress.md @@ -0,0 +1,39 @@ +--- +title: "Cypress" +ring: assess +quadrant: tools + +--- +[Cypress](https://www.cypress.io/) is a new front-end testing tool (end2end). It comes as a simple node package and is therefore easy to use and maintain for front-end developers and testers. Cypress has a different approach than selenium, it runs in the browser and in the same loop as the device under test. + +Good: + +* [Open source](https://github.com/cypress-io/cypress) +* [Locally installed](https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements) +* Straightforward (installed via npm and all tests are written in Javascript) +* Good [documentation](https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshell) and learning material +* Can be run in a [headless mode](https://docs.cypress.io/guides/guides/command-line.html#cypress-run) + +Not so good: + +* No cross-browser testing (only chrome and electron) +* Scenarios with multiple browser tabs can not be tested +* Relatively new test tool, though it is becoming more popular + +Example of a test : + +```js +describe('My First Test', function() { + it('Visits the Kitchen Sink', function() { + cy.visit('https://example.cypress.io') + + cy.contains('type').click() + + cy.url().should('include', '/commands/actions') + + cy.get('.action-email') + .type('fake@email.com') + .should('have.value', 'fake@email.com') + }) +}) +```