Upload
somkiat-puisungnoen
View
2.342
Download
0
Tags:
Embed Size (px)
Citation preview
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance 2
http://less.works/less/technical-excellence/unit-testing.html
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Why not write Unit test ?
4
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Why not write Unit test ?
5
Testing for QA Time = Cost
Integration testing find more bugs
Manual testing find more bugs
Write more code
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Anatomy JUnit 4Test Name
Test Case NameAnnotation
9
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
“What ’s in a name ?”
That which we call a rose
by any other name would smell
Romeo and Juliet
as sweet
11
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Don’t say “test”, say “should”
Guide to Test Writing
12
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Don’t use the word “test”
13
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Use the word “should”
14
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Don’t test your class, test behaviour
Guide to Test Writing
15
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Test class names are important too
Structure your test well
Guide to Test Writing
16
Tests are deliverable too
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
The ratio of time spent (code)
versus writing is
over 10 to 1
Robert C. Martin, Clean Code
18
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Good Unit Test
Arrange
Act
Assert
19
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Setup Pattern
Inline Setup
21
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Setup Pattern
Delegate Setup
22
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Setup Pattern
Implicit Setup
23
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ExpectedException Rule
29
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Data-Driven with JUnit
30
@Parameterized
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Set of test data
Using parameterized
31
Expected resultDefine test that uses the test dataVerify result against expected result
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Data-Driven Development
32
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
@Parameterized with Calculate Grade
Demo
33
Input Expected Result
80 A
70 B
60 C
50 D
40 F
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Step 1 :: Test Data
34
Input Expected Result
80 A
70 B
60 C
50 D
40 F
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Step 3 :: Matching fields
36
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Step 4 :: Define test case
37
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Step 5 :: Add @parameters
38
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
Step 6 :: Test Result
39