clean and quality unit tests

82
Clean & Quality unit tests

Upload: wojtek-zielinski

Post on 10-May-2015

114 views

Category:

Technology


3 download

DESCRIPTION

Talk about readability and high quality of unit tests written in PHPUnit

TRANSCRIPT

Page 1: Clean and Quality Unit Tests

Clean & Quality unit tests

Page 2: Clean and Quality Unit Tests

Wojtek Zieliński

@codecleaner

Page 3: Clean and Quality Unit Tests

•  Names matters

•  Exceptions

•  Test Doubles

•  Stubbing Collections

•  Arrange Act Assert

What’s it all about?

Page 4: Clean and Quality Unit Tests

Names matters

Page 5: Clean and Quality Unit Tests
Page 6: Clean and Quality Unit Tests
Page 7: Clean and Quality Unit Tests
Page 8: Clean and Quality Unit Tests
Page 9: Clean and Quality Unit Tests
Page 10: Clean and Quality Unit Tests
Page 11: Clean and Quality Unit Tests
Page 12: Clean and Quality Unit Tests
Page 13: Clean and Quality Unit Tests

Test a single concept in each test function

Robert C. Martin

Page 14: Clean and Quality Unit Tests
Page 15: Clean and Quality Unit Tests
Page 16: Clean and Quality Unit Tests
Page 17: Clean and Quality Unit Tests
Page 18: Clean and Quality Unit Tests
Page 19: Clean and Quality Unit Tests
Page 20: Clean and Quality Unit Tests
Page 21: Clean and Quality Unit Tests
Page 22: Clean and Quality Unit Tests
Page 23: Clean and Quality Unit Tests
Page 24: Clean and Quality Unit Tests

Exceptions

Page 25: Clean and Quality Unit Tests
Page 26: Clean and Quality Unit Tests
Page 27: Clean and Quality Unit Tests
Page 28: Clean and Quality Unit Tests
Page 29: Clean and Quality Unit Tests
Page 30: Clean and Quality Unit Tests
Page 31: Clean and Quality Unit Tests
Page 32: Clean and Quality Unit Tests
Page 33: Clean and Quality Unit Tests
Page 34: Clean and Quality Unit Tests
Page 35: Clean and Quality Unit Tests
Page 36: Clean and Quality Unit Tests
Page 37: Clean and Quality Unit Tests

Test Doubles

Page 38: Clean and Quality Unit Tests
Page 39: Clean and Quality Unit Tests
Page 40: Clean and Quality Unit Tests
Page 41: Clean and Quality Unit Tests

How does getMock() really work?

•  Does Configuration class exist?

•  Create Mock_Configuration_123abc class extends Configuration class

•  Create instance of that class

•  Return instance

Page 42: Clean and Quality Unit Tests

How does getMock() really work?

•  Does Configuration class exist?

•  Create Mock_Configuration_123abc class extends Configuration class

•  Create instance of that class

•  Return instance

•  Create Configuration class

Page 43: Clean and Quality Unit Tests
Page 44: Clean and Quality Unit Tests
Page 45: Clean and Quality Unit Tests
Page 46: Clean and Quality Unit Tests
Page 47: Clean and Quality Unit Tests
Page 48: Clean and Quality Unit Tests
Page 49: Clean and Quality Unit Tests
Page 50: Clean and Quality Unit Tests
Page 51: Clean and Quality Unit Tests
Page 52: Clean and Quality Unit Tests
Page 53: Clean and Quality Unit Tests
Page 54: Clean and Quality Unit Tests
Page 55: Clean and Quality Unit Tests

Stubs provide canned answers to calls made during the test

"Mocks Aren’t Stubs" Martin Fowler

Page 56: Clean and Quality Unit Tests

Mocks are objects pre-programmed with expectations which form a specification of the calls they are expected to receive

"Mocks Aren’t Stubs" Martin Fowler

Page 57: Clean and Quality Unit Tests
Page 58: Clean and Quality Unit Tests
Page 59: Clean and Quality Unit Tests
Page 60: Clean and Quality Unit Tests
Page 61: Clean and Quality Unit Tests
Page 62: Clean and Quality Unit Tests
Page 63: Clean and Quality Unit Tests
Page 64: Clean and Quality Unit Tests
Page 65: Clean and Quality Unit Tests
Page 66: Clean and Quality Unit Tests
Page 67: Clean and Quality Unit Tests
Page 68: Clean and Quality Unit Tests
Page 69: Clean and Quality Unit Tests

Stubbing collections

Page 70: Clean and Quality Unit Tests
Page 71: Clean and Quality Unit Tests
Page 72: Clean and Quality Unit Tests

Arrange Act

Assert

Page 73: Clean and Quality Unit Tests
Page 74: Clean and Quality Unit Tests
Page 75: Clean and Quality Unit Tests
Page 76: Clean and Quality Unit Tests

It’s all about readability

Page 77: Clean and Quality Unit Tests
Page 78: Clean and Quality Unit Tests
Page 79: Clean and Quality Unit Tests

What’s next?

Page 80: Clean and Quality Unit Tests
Page 81: Clean and Quality Unit Tests
Page 82: Clean and Quality Unit Tests

Questions?

Wojtek Zieliński

@codecleaner