Алексей Демедецкий | Unit testing in swift
-
Upload
fwdays -
Category
Technology
-
view
336 -
download
3
Transcript of Алексей Демедецкий | Unit testing in swift
DO YOU WANT TO TALK ABOUT UNIT TESTIG IN SWIFT?
#itsat @daloog
¯\_( )_/¯
Alexey Demedetskiy Sigma Software
THANK YOU APPLE!
99% OF IOS APPS ARE SHIPPED WITH UNIT TESTING!
WORKOUT TIME!!
( °□°)
ARE UNIT TESTS WORTH IT?HTTP://STACKOVERFLOW.COM/QUESTIONS/237000/IS-THERE-HARD-EVIDENCE-OF-THE-ROI-OF-UNIT-TESTING
TIME += 30%HTTP://COLLABORATION.CSC.NCSU.EDU/LAURIE/PAPERS/TDDPAPERV8.PDF
DEFECTS -= 60%HTTP://RESEARCH.MICROSOFT.COM/EN-US/GROUPS/ESE/NAGAPPAN_TDD.PDF
TESTS ARE GREAT!
!(ಠ ಠ!)
WHY WE ARE NOT RUBY?
1) MARKET HUSTLE
2) APPLE FRAMEWORKS
3) LACK OF EXPERTISE
4) OUTSOURCE
⌛ ➡ 💰
UNIT TESTS ARE WRITTEN BY DEVELOPERS.
TESTS ARE DEVELOPERS RESPONSIBILITY
DON’T SELL THEM WRITE THEM
WHY DO WE NEED TO WRITE TESTS?
1) REFACTORING
2) CONFIDENCE
3) CATCHING ERRORS
4) REGRESSION
🐞➡❌➡⌨➡✅
HOW TO WRITE TESTS?
🍕 🛠
🌌
UNITAS SMALLEST LOGIC CONTAINER
🍕
FUNCTION
INPUT ➡ OUTPUT
PURE FUNCTIONS
METHOD
MUTATION OF STATE
VOID ➡ VOID
INPUT ➡ OUTPUT
DOMAIN == CODOMAIN
ALL MY CODE IS FUNCTIONAL, WHERE EVERY FUNCTION TAKES ONE ARGUMENT: ALL MY PROGRAM'S STATE.
OBJECT
DEPENDENCIES
TRANSITIVE DEPENDENCIES
INITIAL STATE
ORDER OF OPERATIONS
UNITAS SMALLEST LOGIC CONTAINER
🍕
🍕 🛠
🌌
TESTS
🛠
GWT
GIVEN WHEN THEN
AAA
ARRANGE ACT ASSERT
SRV
SETUP RECORD VERIFY
FUNCTIONS - GWT
METHODS - AAA
OBJECTS - SRV
VALUE TESTS
BEHAVIOR TESTS
INTEGRATION TESTS
CLIENT TESTS
PYRAMID OF TESTSHTTP://TODDLITTLEWEB.COM/WORDPRESS/2014/06/23/THE-TESTING-DIAMOND-AND-THE-PYRAMID-2/
TEST COVERAGEHTTP://MARTINFOWLER.COM/BLIKI/TESTCOVERAGE.HTML
TESTS
🛠
🍕 🛠
🌌
SIDE EFFECTS
🌌
RETURN VALUE
FUNCTION CALL
STATE CHANGE
SIDE EFFECTS
🌌
🍕 🛠
🌌
SWIFT
DEPENDENCIES
STRUCT
INTERNAL
PROTOCOL
EXTERNAL
XCTEST
QUICK / NIMBLEHTTPS://GITHUB.COM/QUICK/QUICK
RECORDERHTTPS://GIST.GITHUB.COM/ALEXEYDEMEDETSKIY/7A148559C81472A314F7
SWIFT
🍕 🛠
🌌
💻
💻HTTPS://GITHUB.COM/XNEKOIX/FUNTIONALMVP
HTTP://WWW.AMAZON.COM/WORKING-EFFECTIVELY-LEGACY-MICHAEL-FEATHERS/DP/0131177052
HTTP://WWW.AMAZON.COM/EXTREME-PROGRAMMING-EXPLAINED-EMBRACE-EDITION/DP/0321278658