Snabba tester med Nodejs
-
Upload
valtech-ab -
Category
Technology
-
view
1.529 -
download
7
description
Transcript of Snabba tester med Nodejs
![Page 1: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/1.jpg)
TDD is dead. Long live testing
![Page 2: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/2.jpg)
Slow database test fallacy
![Page 3: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/3.jpg)
Snabba tester för Node.js
![Page 4: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/4.jpg)
![Page 5: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/5.jpg)
![Page 6: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/6.jpg)
nock supertest
![Page 7: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/7.jpg)
var nock = require('nock') !
nock('http://api.example.com') .get('/me') .reply(200, { username: 'dude', email: '[email protected]' })
nock
![Page 8: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/8.jpg)
supertestvar request = require('supertest') !
request('http://api.example.com') .get('/me') .expect(200) .expect({ username: 'dude', email: '[email protected]' }) .end(function (err, res) {})
![Page 9: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/9.jpg)
supertestvar request = require('supertest') !
request('http://api.example.com') .get('/me') .expect(200) .expect({ username: 'dude', email: '[email protected]' }) .end(function (err, res) {})
require('../app.js')
![Page 10: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/10.jpg)
express// expose app for tests module.exports = app !
// listen only on normal start if (!module.parent) { app.listen(...) }
![Page 11: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/11.jpg)
ApplikationWebb-läsare
Externt API
![Page 12: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/12.jpg)
Sätter upp lyssnare (supertest)
Sätter upp (nock)
ApplikationWebb-läsare
Externt API
Fejkat externt APITest Testar
(supertest)
![Page 13: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/13.jpg)
Hur tar vi testerna till nästa nivå?
![Page 14: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/14.jpg)
Kör vi testerna
parallellt?
![Page 15: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/15.jpg)
Hindermocha require
![Page 16: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/16.jpg)
mocha ppunit, lab require require.js, IoC continuation-local-storage
Hinder
![Page 17: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/17.jpg)
0
1
2
3
4
Sekventiellt Parallella testsviter Parallella tester
![Page 18: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/18.jpg)
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
![Page 19: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/19.jpg)
Rela
tiv te
sttid
0,00
0,25
0,50
0,75
1,00
Antal kärnor1st 2st 4st 8st
tester med nock & supertest
![Page 20: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/20.jpg)
en till sak...
![Page 21: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/21.jpg)
profilera dina tester!
![Page 22: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/22.jpg)
57.92% parse_buffer dustjs-linkedin/lib/parser.js
Före Efter
![Page 23: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/23.jpg)
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
![Page 24: Snabba tester med Nodejs](https://reader034.fdocuments.in/reader034/viewer/2022051110/54b513f54a7959202e8b462c/html5/thumbnails/24.jpg)
valtechlabs.se
Tack!