18
JAVASCRIPT TESTING STRATEGIES DIWA DEL MUNDO, VOYAGER INNOVATIONS MANILA.JS FRIDAYS MEETUP APRIL 8, 2015 A-SPACE, MAKATI, PHILIPPINES

Testable JavaScript Strategies

Embed Size (px)

Citation preview

J AVA S C R I P T T E S T I N G S T R AT E G I E S

D I W A D E L M U N D O , V O YA G E R I N N O VA T I O N S

M A N I L A . J S F R I D A Y S M E E T U P A P R I L 8 , 2 0 1 5 A - S PA C E , M A K A T I , P H I L I P P I N E S

S H O R T B A C K G R O U N D A B O U T M E

• Almost a decade of software dev experience

• Work exp local startups (LPI, self) and Singapore (Viki)

• Ruby on Rails, JavaScript, Linux, AWS

• CISSP, AWS Certified SA, CPISI (PCI-DSS)

T E S T I N G S P E C T R U M

UNIT INTEGRATION END-TO-END

functions, modules

components, API tests

UI, application

3 S T R AT E G I E S F O R T E S T I N G

• Enforce code standards

• Cultivate “testing” mindset

• Use good tools

1 . E N F O R C E C O D E S TA N D A R D S

• Code guideline (syntax)

• Code review

• Standard for managing continuation-passing style (CPS)

C O D E G U I D E L I N E

• Be particular about syntax (bracing, spacing, etc)

• Document, e.g. “CodeGuidelines.md”

• Project code should look like it was written by 1 person

Image From https://github.com/airbnb/javascript

C O D E R E V I E W S

• Find faults, issues, etc

• Review code quality (plato)

• Test coverage (istanbul)

npm install plato -g

npm install istanbul -g

Have a standard for continuation passing style (CPS)

O P T I O N S F O R C P S

NAMED STYLE

Promises ES6: Generators

Libraries like async, synchronize, fibers

A S Y N C + N A M E D F U N C T I O N S

F O R C E S D E V E L O P E R T O

W R I T E U N I T- T E S TA B L E

C O D E

M Y P R E F E R R E D S T Y L E

“ S H AW D O W O B J E C T S ”

2 . C U LT I VAT E T E S T I N G M I N D S E T

• Write tests. Try to do full testing spectrum

• Have discussions on how to test

• Think outside box

H O W D O Y O U T E S T T H I S ?

3. Good Tools

T E S T F R A M E W O R K :

M O C H A

A S S E R T I O N S T Y L E : C H A I

T E S T D O U B L E S : S I N O N

C O D E Q U A L I T Y: P L AT O

T E S T C O V E R A G E : I S TA N B U L

R E Q U E S T R E C O R D E R :

N O C K

E N D - T O - E N D : K A R M A

TA K E A W AY

• ENFORCE CODE STANDARDS

• CULTIVATE TESTING MINDSET

• USE GOOD TOOLS

• Rule of thumb: test to minimise problems, not test for the sake of testing