VP of Engineering
C / C++ / C# / Java / CoffeeScript / JavaScript / Node / Angular / Vue / Cycle.js / functional
EveryScape
virtual tours
MathWorks
MatLab on the web
Kensho
finance dashboards
11 people. Atlanta, Philly, Boston, LA
Fast, easy and reliable testing for anything that runs in a browser
and hiring! https://www.cypress.io/jobs/
Will Klein
Quality software behaves the way users expect it to behave
E2E
integration
unit
A picture of that meetup (things were very different back then)
E2E
integration
unit
E2E
integration
unit
E2E
integration
unit
Really important to users
Really important to developers
$ npm install -D cypress
it('opens the page', () => {
cy.visit('http://localhost:3000')
cy.get('.new-todo')
.should('be.visible')
})
it('adds 2 todos', () => {
cy.visit('http://localhost:3000')
cy.get('.new-todo')
.type('learn testing{enter}')
.type('be cool{enter}')
cy.get('.todo-list li')
.should('have.length', 2)
})
Egghead.io Cypress Course
Free course (same author Andrew Van Slaars!)
Cypress documentation
(look behind you)
See, share, and fix failing tests.
E2E
integration
unit
E2E
integration
unit
WAIT A MINUTE!
$ npm install -D cypress cypress-angularjs-unit-test
import angular from 'angular'
angular.module('demo', [])
.controller('WelcomeController', function($scope) {
$scope.greeting = 'Welcome!';
$scope.version = angular.version.full
});
AngularJS unit test demo with Cypress
app.js
import './app.js'
import {mount} from 'cypress-angularjs-unit-test'
beforeEach(() => {
const template = `
<div ng-controller="WelcomeController">
{{greeting}}
</div>`
mount(template, ['demo'])
})
it('shows hello', () => {
// "WelcomeController" should have replaced template
// expression {{greeting}} with actual text
cy.contains('div', 'Welcome!').should('be.visible')
})
AngularJS unit test demo with Cypress
spec.js