Upload
spooky-xie
View
4.182
Download
0
Embed Size (px)
Citation preview
DevOps TDD
SPOOKY
ProgrammerDevOps
Team Leader
Java 6 yearsJavascript 1.5 years
smlsun@facebook
trunk-studio.comblog.trunk-studio.com
OUTLINE• DevOps
• DevOps
• DevOps
• TDD
• TDD
• TDD
• TDD CI
•
DevOps
AGILE VS LEAN• Agile:
•
• Lean:
•
•
DEVOPS
•
•
DEVOPS
• 90
• 2 1 DevOps 1.5 18
DevOps
DevOps
Develop Operator
DevOps Tools
Tools as objects to think with Tools
DEVOPS
•
•
•
•
TDD
DevOps ...
•
•
•
•
TEST
DeveloperQA
TEST SPEC
/
FAIL Edge of Tomorrow
TDD test
Tools as objects to think with Tools
TDD is not about testbut think about better design
...
TDD TEST CODE
TDD
X TEST vs O TEST
-4-2-60
TDD NODEJS
PackageLibrary
ApplicationServer
LOGIN
• 3 step Login
INITIAL
var liftApp = async () => { await models.sequelize.sync({ force: config.connection.force }); await bootstrap(); app.listen(config.port); return app;}if (env !== 'test') liftApp();module.exports = liftApp
import chai from 'chai';import request from 'supertest';import sinon from 'sinon';import liftApp from '../../server';chai.should();global.sinon = sinon;before(async (done) => { let app = await liftApp(); global.app = app; global.request = request.agent(app.listen()); done();});
APstart
test frameworkstart
SPECdescribe('auth login spec', () => { before(async (done) => { let testUser = {'username': 'test', 'password': 'test'} await models.User.create(testUser); done(); });
it('login should be success.', async (done) => {
let loginUserFormData = { 'username': ‘test', 'password': ‘test' }; request.post(‘/auth/login') .send(loginUserFormData).expect(200) .end((error, res) => { if (error) done(error); let loginResult = res.body; loginResult.success.should.be.true; done(); }) }});
• Mocha test framework
• Supertest API
• Should or Chai spec
MOCK
EX
APIOR
• sinon Mock
Source code
Mock code
Spec
SPECSA/SD
/
SPEC
TDD CI
CI / CD
CI
Auto Trigger
–
“ ”
•
•
•
•
• from Clean Code
DEVOPS TDD
• Member
•
• Member
•
•
•
•
•
• Member
•
•
AGILE VS LEAN AND
• Agile:
•
• Lean:
•
• http://qualitycoding.org/tdd-testimonial/
• http://gamesfromwithin.com/backwards-is-forward-making-better-games-with-test-driven-development
• http://punnode.com/archives/18016
• http://teddy-chen-tw.blogspot.tw/2014/09/blog-post_22.html