Your SlideShare is downloading. ×
  • Like
Understanding Unit Testing
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Understanding Unit Testing


Introduction to automated testing and unit testing

Introduction to automated testing and unit testing

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • In procedural -> module/function, In OOP -> class/method. Jenis test paling mendalam. What you actually test is behavior.
  • Create projects
  • Go to codes
  • Go to codes
  • Copy files


  • 2. Introduction Ikhwan Hayat (a.k.a 1kHz) 9 years experience developingsoftware Freelance Software Developer ikhwanhayat@gmail.com2
  • 3. manual3Testing?VSautomatedwhite boxVSblack boxacceptance testintegration testunit test
  • 4. Unit? 4Unit testing is a method by which individual units ofsource code are tested to determine if they are fit foruse.One can view a unit as the smallest testable partof an application.Unit tests are created by programmers oroccasionally by white box testers during thedevelopment process.
  • 5. TDD Test Driven Design It’s NOT testing, but using tests to DRIVE thedesign As a side-effect, you got unit tests!With good level of coverage!5
  • 6. 6REDGREENREFACTORWrite a failing test. With empty class/method.Fill in the class/method implementation. Make the tests pass.Make code better.
  • 7. Demo: Bank Account Requirements Can create bank accounts Can deposit money into account Can withdraw money from account Throw exception if balance is insufficient Can transfer money from one account to another Can insert and update accounts into database7
  • 8. 8IDE / Platform Testing FrameworkMocking Framework
  • 9. Design 9
  • 11. Unit11Test
  • 12. 12
  • 13. Design 2 13
  • 14. 14Unit Test
  • 15. Design 3 15
  • 16. 16repositoryVSactive record???
  • 17. 17Unit Test
  • 18. A good unit test is… Isolated/independent Test one thing at a time. Unit under test doesn’t depend on the other to make test runs. Repeatable Running multiple times yields the same result. Doesn’t rely on environment. Fast You want to repeat it again and again. You want it to be a pleasure to work with. Self-Documenting Test code and code under test clear and concise. Can be a reference for usage of your class/method/etc.18
  • 19. 19Dependency InjectionSeparation of Interfaceand ImplementationSingle Responsibility Principal
  • 20. 20Web Controller DI/IoC Setup
  • 21. 21“Mocking” allow us toisolate dependentunits.
  • 22. Types of Test Doubles Dummy objects are passed around but never actuallyused. Usually they are just used to fill parameter lists. Fake objects actually have workingimplementations, but usually take some shortcut whichmakes them not suitable for production. Stub objects provide canned answers to calls madeduring the test, usually not responding at all to anythingoutside whats programmed in for the test. Mock objects are pre-programmed with expectationswhich form a specification of the calls they areexpected to receive.22
  • 23. 23Unit Test
  • 24. Benefits Instant feedback Write test, write code, see instant result. Promote modularity in your design DI, SRP, Interface vs Implementation. Safety net Change/add code and check if business rules are stillhonored. Free documentation Can be a reference for usage of yourclass/method/etc.24
  • 25. Done! What is unit testing. TDD. How to write good unit tests. How unit testing can benefit us.25We have learned…Get the codes and slides at…
  • 26. Next? Learning BDD (Behavior Driven Design). Research CI (Continuous Integration). Learn on how to design testable systems. Use unit testing for your project!(I mean, seriously, USE IT!)26You can go on with…
  • 27. MOAR! Google+ MyDev ikhwanhayat@gmail.com27THANK YOU FOR LISTENING!