devops 及 tdd 開發流程哲學

Post on 16-Apr-2017

4.189 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

DevOps Agile Lean

DevOps IT

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

top related