Test-Driven Development
(...details will be added along the way...)
Calabash
Introduction (slide)
Hướng dẫn cách tổ chức và viết test chung cho ứng dụng chạy trên cả iOS và Android
LessPainful’s sample and guide
iOS:
iOS document
iOS: Calabash IBase Document
Android:
Android query language
Android : Calabash ABase Document
Announcements
- Sample: FirstTest.java, TicTacToeRunner.java.
- Lộ trình Kata #5. Bài kiểm tra số 1 hạn nộp 9h sáng ngày 5/8.
- Growing Object-Oriented Software....Chapter 9, Chapter 10,
Chapter 11,
Chapter 12,
Chapter 13,
Chapter 14
- Kata #5 (English version)
- Kata #4 (English version)
- Questions/Issues
- Kata #3. (English version)
- Kata test #1
- Kata #2 (English version)
- See your everyday kata performance here.
- Kata starts on May 27. Everyday from 13h45 to 14h15, you are to do StringCalculator kata (see Session 2) in a new project. When time is up, push your work to your StringCalculator repo at GitHub, no matter how far you've gone or how little you've done.
Remember that it is very important that everyday you spend 30' coding the kata freshly from the start. This is like martial art training.
Tell me when you reach the point of finishing the kata in about 20', I'll see if you should move to a new kata.
- Class on 'Refactor' is canceled until further notice.
- GitHub account : You need an GitHub account for homework and final project submission.
Enlist your user name here.
Session 1. May 10. Introduction
- Test design test.
- Course Introduction.
- Homework: Implement
String English.numberToWords(int number)
with unit testing.
Session 2. May 14. What is TDD?
- Live coding demo: Kent Beck's Money Example. Content: from the start to the removal of Dollar and Franc. Maven project + JUnit in IntelliJ.
Emphasis: TDD mantra "Red-Green-Clean" and JUnit in action.
- Homework: TDD practice 1: Pair programming Roy Osherove's String calculator (original version) . First, follow the steps (no more than 30'). Watch the screencasts later.
Emphasis: Practice TDD with step-by-step instruction.
- Readings: [BECK] Session I.
Outcomes: ability to: create Maven project in IntelliJ; create and run JUnit unit tests; use basic JUnit assertion methods; recognize TDD process.
Session 3. May 16. TDD practice 2
- Implement
String English.numberToWords(int number)
again, this time with TDD.
Emphasis: Plan your own TDD, do it, and compare with your own non-TDD implementation (from session 1)
Outcomes:ability to carry out TDD steps for simple independent projects.
Session 4. May 17. Dependency and mock objects
Outcomes: ability to carry out TDD steps for projects with dependency.
References:
[HUNT] Ch.6. (not required)
EasyMock 3.0 Documentation
JMock
Session 5. May 21. Test design
- Slides.
- Readings: [HUNT] Ch.4,5. (required)
- Homework: Write test classes for Exx 1-4(Ch.5). When the name of the class under test is not available, make up one. Submit your work to your GitHub repo.
Outcomes: Towards ability to write test sets with good coverage. This will serve as the initial todo list in TDD.
Resources:
Roy Osherove, Unit testing best practice (video)
Session 6. May 28. Refactoring techniques
(canceled until further notification)
Session 7. May 29. Mini project. Final evaluation
Self planning and developing using TDD.
Using svn to show diff between cycles. Topic: TBD.
(canceled until further notification)
References:
- [BECK] Kent Beck, Test-Driven Development By Example. 2002.
- [HUNT] Andy Hunt, Dave Thomas, Pragmatic Unit Testing in Java with JUnit, 2003.
General:
Objective C - iOS:
other resources:
Android:
Javascript - ExtJS. Frameworks to explore:
to see if there is anything good: