snabba tester med nodejs

Post on 13-Jan-2015

1.536 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

Gabriel Falkenberg, Valtech En snabb testsvit är underbart att ha under utveckling. Jag kommer presentera några moduler och tekniker, beprövade och experimentella, för att få dina tester att gå som en oljad blixt.

TRANSCRIPT

TDD is dead. Long live testing

Slow database test fallacy

Snabba tester för Node.js

nock supertest

var nock = require('nock') !

nock('http://api.example.com') .get('/me') .reply(200, { username: 'dude', email: 'dude@example.com' })

nock

supertestvar request = require('supertest') !

request('http://api.example.com') .get('/me') .expect(200) .expect({ username: 'dude', email: 'dude@example.com' }) .end(function (err, res) {})

supertestvar request = require('supertest') !

request('http://api.example.com') .get('/me') .expect(200) .expect({ username: 'dude', email: 'dude@example.com' }) .end(function (err, res) {})

require('../app.js')

express// expose app for tests module.exports = app !

// listen only on normal start if (!module.parent) { app.listen(...) }

ApplikationWebb-läsare

Externt API

Sätter upp lyssnare (supertest)

Sätter upp (nock)

ApplikationWebb-läsare

Externt API

Fejkat externt APITest Testar

(supertest)

Hur tar vi testerna till nästa nivå?

Kör vi testerna

parallellt?

Hindermocha require

mocha ppunit, lab require require.js, IoC continuation-local-storage

Hinder

0

1

2

3

4

Sekventiellt Parallella testsviter Parallella tester

Test

tid i

seku

nder

0

1

3

4

5

Latens hos bakomliggande system0 ms 10 ms 20 ms 30 ms 40 ms

sekventiella tester parallella sviter parallella tester

Rela

tiv te

sttid

0,00

0,25

0,50

0,75

1,00

Antal kärnor1st 2st 4st 8st

tester med nock & supertest

en till sak...

profilera dina tester!

57.92% parse_buffer dustjs-linkedin/lib/parser.js

Före Efter

Sammanfattning1. Ersätt riktiga HTTP-anrop med nock2. (Om det inte är möjligt, försök köra

testerna parallellt)3. Profilera dina tester4. Kör testerna på flera kärnor

valtechlabs.se

Tack!

top related