Gleb Bahmutov PRO
JavaScript ninja, image processing expert, software quality fanatic
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
By Gleb Bahmutov
Testing is hard. End-to-end testing is really hard. But maybe it is hard because our tools are not up to the task. What if we could redesign the testing experience from the ground up to be fast, useful and effective? In this presentation, I will show Cypress - an open source end-to-end test runner designed from scratch to be useful to developers. Come to learn how testing can be ... a pleasure. AngularBoston 2018, video at https://youtu.be/wQfS3mCDVO0
JavaScript ninja, image processing expert, software quality fanatic