Snabba tester med Nodejs

2,399 views

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,399
On SlideShare
0
From Embeds
0
Number of Embeds
1,680
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Snabba tester med Nodejs

  1. 1. TDD is dead. Long live testing
  2. 2. Slow database test fallacy
  3. 3. Snabba tester för Node.js
  4. 4. nock supertest
  5. 5. var nock = require('nock') ! nock('http://api.example.com') .get('/me') .reply(200, { username: 'dude', email: 'dude@example.com' }) nock
  6. 6. supertest var request = require('supertest') ! request('http://api.example.com') .get('/me') .expect(200) .expect({ username: 'dude', email: 'dude@example.com' }) .end(function (err, res) {})
  7. 7. supertest var 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')
  8. 8. express // expose app for tests module.exports = app ! // listen only on normal start if (!module.parent) { app.listen(...) }
  9. 9. Applikation Webb- läsare Externt API
  10. 10. Sätter upp lyssnare (supertest) Sätter upp (nock) Applikation Webb- läsare Externt API Fejkat externt APITest Testar (supertest)
  11. 11. Hur tar vi testerna till nästa nivå?
  12. 12. Kör vi testerna parallellt?
  13. 13. Hinder mocha require
  14. 14. mocha ppunit, lab require require.js, IoC continuation-local-storage Hinder
  15. 15. 0 1 2 3 4 Sekventiellt Parallella testsviter Parallella tester
  16. 16. Testtidisekunder 0 1 3 4 5 Latens hos bakomliggande system 0 ms 10 ms 20 ms 30 ms 40 ms sekventiella tester parallella sviter parallella tester
  17. 17. Relativtesttid 0,00 0,25 0,50 0,75 1,00 Antal kärnor 1st 2st 4st 8st tester med nock & supertest
  18. 18. en till sak...
  19. 19. profilera dina tester!
  20. 20. 57.92% parse_buffer dustjs-linkedin/lib/parser.js Före Efter
  21. 21. Sammanfattning 1. Ersätt riktiga HTTP-anrop med nock 2. (Om det inte är möjligt, försök köra testerna parallellt) 3. Profilera dina tester 4. Kör testerna på flera kärnor
  22. 22. valtechlabs.se Tack!

×