Java Excellence Excercises
The tdd
directory contains problem and solution code for the TDD class.
The tdd/refactoring
directory contains projects that you can import into your IDE (Eclipse / Intellij IDEA) for practice or to view the solutions. The projects are set up as standard Maven projects, so as to make them easier to import into any IDE that supports Maven.
Directory | Description |
---|---|
0.0‑CollectingParameter‑Example |
Code for the "Collecting Parameter" example. (This is optional.) |
1.0‑AutomatedRefactoring‑Problem |
Code for the "Automated Refactoring" exercise. (Including "Rename Method", "Rename Field", "Extract Method" and "Pull Up".) |
1.5‑AutomatedRefactoring‑Solution |
Solution code for the "Automated Refactoring" exercise. |
2.0‑SmellectionsPart1‑Problem |
Code for the "Smellections, Part 1" exercise. (Including "Compose Method", "Safe Delete", "Inline Variable" and "Extract Method".) |
2.5‑SmellectionsPart1‑Solution |
Solution code for "Smellections, Part 1." |
3.0‑SmellectionsPart2‑Problem |
Code for the "Smellections, Part 2" exercise. (Including "Caller Creates", "Caller Swap" and "Encapsulate Field".) |
3.5‑SmellectionsPart2‑Solution |
Solution code for "Smellections, Part 2." |
4.0‑SmellectionsPart3‑Problem |
Code for the "Smellections, Part 3" exercise. (Including "Extract Method", "Rename Method", "Pull Up", "Extract Local Variable" and "Rename local Variable" |
4.5‑SmellectionsPart3‑Solution |
Solution code for "Smellections, Part 3." |
5.0‑SmellectionsPart4‑Problem |
Code for the "Smellections, Part 4" exercise. (Including "Introduce Scaffolding".) |
5.5‑SmellectionsPart4‑Solution |
Solution code for "Smellections, Part 4." |
The tdd/microtesting
directory contains projects you can import into your IDE (Eclipse / IntelliJ IDEA) for the Microtesting module. The projects are standard Maven projects. Note that in some projects, the tests fail intentionally.
Directory | Description |
---|---|
0.0‑AllAboutXUnit‑Example |
Example using xUnit. (Optional.) |
1.0‑SoundCheck‑Problem |
Sound Check exercise. |
2.0‑SmallIsSuperb‑Problem |
Small is Superb exercise (refactoring a large test into microtests). |
2.5‑SmallIsSuperb‑Solution |
Instructor solution to the Small is Superb exercise. |
3.0‑AssertThat‑Example |
Example of using AssertJ's assertThat(). |
4.0‑TailQueuePart1‑Problem |
Tail queue exercise, part 1. (Basic microtesting.) |
4.5‑TailQueuePart1‑Solution |
Solution to Tail queue exercise, part 1. |
5.0‑TailQueuePart3‑Problem |
Tail queue exercise, part 3. (Complex scenarios.) |
5.5‑TailQueuePart3‑Solution |
Solution to the Tail queue exercise, part 3. |
(Yes, that is correct; there is no "part 2" of the Tail queue exercise.)
The tdd/testDrivenDevelopment
directory contains projects you can import into your IDE for the Test Driven Development module. The projects are standard Maven projects.
Directory | Description |
---|---|
1.0‑SoundCheckTest‑Problem |
Sound Check exercise (duplicate of the microtesting project). |
2.0‑TDDRhythm‑Problem |
TDD Rhythm problem. |
2.5‑TDDRhythm‑Solution |
TDD Rhythm solution. |
3.0‑WildWildWireless‑Problem |
Initial project structure for the Wild West Wireless problem. |
3.5.1‑WildWestWirelessTask1‑Solution |
Instructor's solution to Task 1 of the Wild West Wireless problem. |
3.5.2‑WildWestWirelessTask2‑Solution |
Instructor's solution to Task 2 of the Wild West Wireless problem. |
3.5.3‑WildWestWirelessTask3‑Solution |
Instructor's solution to Task 3 of the Wild West Wireless problem. |
3.5.4‑WildWestWirelessTask4‑Solution |
Instructor's solution to Task 4 of the Wild West Wireless problem. |
The tdd/fakingAndMocking
directory contains projects you can import into your IDE for the Faking & Mocking module. The projects are standard maven project.
Note that some projects will contain a Maven warning because of the system
import of a supporting jar file.
Directory | Description |
---|---|
1.0-DiceRollFakeless-Problem |
Using a fake-less to resolve a problem. |
1.5-DiceRollFakeless-Solution |
Instructor's solution to using a fake-less solution. |
2.0-DiceRollFake-Problem |
Using a fake to resolve a problem. |
2.5-DiceRollFake-Solution |
Instructor's solution to using a fake solution. |
3.0-DiceRollAutoMock-Problem |
Using an auto-mock to resolve a problem. |
3.5-DiceRollAutoMock-Solution |
Instructor's solution to using an auto-mock. |
4.0-Orders-ListeningFake-Problem |
Using a listening fake to resolve a problem. |
4.5-Orders-ListeningFake-Solution |
Instructor's solution for using a listening fake. |
5.0-Orders-Singleton-Problem |
Dealing with a singleton. |
5.5-Orders-Singleton-Solution |
Instructor's solution for dealing with a singleton. |
6.0-Orders-AutoMock-Problem |
Using an auto-mock. |
6.5-Orders-AutoMock-Solution |
Instructor's solution for using an auto-mock. |