Index
A
- @After annotation / Encounter
- @After method / Running the first unit test
- activate() method / Switch statements
- add() method / Stopping refactoring, Encounter, Asserting a value
- addConnection() method / Switch statements, Duplicate code
- addConnection method / Long methods and parameter list
- agent classes / Agent classes
- Agile
- about / Revealing Agile methodologies
- Agile manifesto
- Answer class
- used, for stubbing with callbacks / Stubbing with callbacks – using the Answer class
- application
- building / Building the application
- ArgumentCaptor method / Building the application
- argument matcher
- rationale / Rationale
- wildcard matchers, need for / Why we need wildcard matchers
- ArgumentMatcher class / The ArgumentMatcher class
- arguments
- capturing / Argument capture
- ArrayList object / Encounter
- ATDD
- about / Understanding outside-in
- example / An example of ATDD
B
- @Before annotation / Encounter
- @Before method / Running the first unit test
- Backlog grooming / Meetings
- bad design
- characteristics / Characteristics of a bad design
- bill() method / Stopping refactoring, Switch statements
- buildCommand() method / Applying a command pattern
- build job
- adding / Adding a build job
- buildName() method / Duplicate code, Long methods and parameter list, Agent classes, Lazy, dead classes and dead code
- build trigger
- setting / Build triggers
- BusinessObject class / Diving into the legacy puzzle
C
- calculate() method / Definition of test
- code smell
- about / Code smell
- switch statements / Switch statements
- duplicate code / Duplicate code
- comment / Comments
- long methods / Long methods and parameter list
- parameter list / Long methods and parameter list
- large class / Large classes (aka GOD object)
- agent classes / Agent classes
- lazy / Lazy, dead classes and dead code
- dead class / Lazy, dead classes and dead code
- dead code / Lazy, dead classes and dead code
- over-engineering / Over engineering (speculative generality)
- wrong inheritance / Wrong inheritance (refused bequest)
- command
- conditional logic, replacing with / Replacing conditional logic with command
- Command interface / Replacing conditional logic with command
- command pattern
- applying / Applying a command pattern
- comment / Comments
- conditional logic
- replacing, with command / Replacing conditional logic with command
- replacing, with strategy / Replacing conditional logic with strategy
- consecutive calls / Consecutive calls
- constants
- creating / Useful keys for TDD and refactoring
- consultant class / An example of ATDD
- continuous integration
- exploring / Exploring continuous integration
- create method / Strategy pattern
- createTxDto(...) method / Building the application
- cusmoter requirements, Mockito / Customer requirements
D
- Daily stand-up meeting / Meetings
- dead class / Lazy, dead classes and dead code
- dead code / Lazy, dead classes and dead code
- design patterns
- about / Design patterns
- classifying / Classification of patterns
- conditional logic, replacing with command / Replacing conditional logic with command
- command pattern, applying / Applying a command pattern
- conditional logic, replacing with strategy / Replacing conditional logic with strategy
- design principles
- about / Design principles
- higher level design guidelines / Design principles
- low-level design principles / Design principles
- DirtyState / Diving into the legacy puzzle
- discount() method / Drinking Mockito
- dispense() method / Stub
- doReturn()
- using / Using doReturn()
- dummy, test doubles / Dummy
- duplicate code / Duplicate code
E
- EasyMock
- URL / Argument capture
- Eclipse
- discovering / Discovering Eclipse
- URL / Discovering Eclipse
- encounter, TDD / Encounter
- epic / Working with the Scrum methodology
- equals() method / Understanding different test types, Argument capture
- exception handling / Exception handling
- extract method / Useful keys for TDD and refactoring
- eXtreme Programming (XP) / Exploring continuous integration
F
- fake, test doubles / Fake
- feature / Working with the Scrum methodology
- files
- switching / Useful keys for TDD and refactoring
- find() method / Encounter
G
- general settings
- about / General settings
- generateBillFor() method / Switch statements
- getAllEncounters() method / The role of Mockito
- getItemsExpireInAMonth() method / Drinking Mockito
- getQoute method / Stubbing with callbacks – using the Answer class
- getSimpleJdbcTemplate() method / Fake
- getters/setters
- generating / Useful keys for TDD and refactoring
- getValue method / Rationale
H
- hashCode() method / Understanding different test types
- healthcare vocabulary, TDD / Common healthcare vocabulary
- higher level design guidelines / Design principles
I
- initialize method / Refactoring legacy code
- inside-out
- about / Understanding inside-out
- advantages / Understanding the advantages and disadvantages of inside-out
- disadvantages / Understanding the advantages and disadvantages of inside-out
- Inversion of Control (IoC) / Design principles
- issueDiscountForItemsExpiresIn30Days() method / Drinking Mockito
J
- Jenkins
- exploring / Exploring Jenkins
- installing, URL / Exploring Jenkins
- configuring / Configuring Jenkins
- Jenkins, configuring
- build job, adding / Adding a build job
- source code management / Source code management
- build trigger / Build triggers
- project build scripts / Scripting
- post-build actions / Post-build actions
- security / Security
- jMock
- URL / Argument capture
- JUnit
- JUnit 4
- URL / JUnit 4.x
- JUnit 4.x
- about / JUnit 4.x
- unit test, running / Running the first unit test
- exception handling / Exception handling
- test suit / The test suite
- test, ignoring / Ignoring a test
- value, asserting / Asserting a value
- JUnit framework
- URL / Definition of test
K
- Kanban development process
- exploring / Exploring the Kanban development process
- Kanban story board
L
- large class / Large classes (aka GOD object)
- legacy code
- about / What is legacy code?
- disadvantages / Problems with legacy code
- refactoring / Refactoring legacy code
- legacy puzzle
- dividing into / Diving into the legacy puzzle
- long methods / Long methods and parameter list
- low-level design principles / Design principles
M
- meetings
- mock, test doubles / Mock
- Mockito
- about / An overview of Mockito, The role of Mockito
- URL / An overview of Mockito
- need for / Why you should use Mockito
- drinking / Drinking Mockito
- consecutive calls / Consecutive calls
- applying / Applying Mockito
- Mockito, applying
- cusmoter requirements / Customer requirements
- application, building / Building the application
- MRN / MRN
O
- objects
- spying / Spying objects
- org.junit.Assert class / Definition of test
- outside-in
- about / Understanding outside-in
- ATDD example / An example of ATDD
- advantages / Understanding the advantages and disadvantages of outside-in
- disadvantages / Understanding the advantages and disadvantages of outside-in
- over-engineering / Over engineering (speculative generality)
P
- parameter list / Long methods and parameter list
- PersonName object / Long methods and parameter list
- post-build actions, Jenkins / Post-build actions
- procedure, TDD / Procedure
- project build scripts, Jenkins / Scripting
- protected method / Refactoring legacy code
- public method / Encounter
Q
- Q2HS
- about / Definition
- quality assurance (QA) / Definition of test
R
- rationale, argument matcher / Rationale
- rationale, redundant invocation / Rationale
- reconcile() method / Building the application
- redundant invocation
- verifying / Verifying redundant invocation
- rationale / Rationale
- refactoring
- about / Refactoring, Refactoring
- need for / Reasons behind refactoring
- scheduling / Refactoring schedule
- avoiding / When not to refactor
- stopping / Stopping refactoring
- code smell / Code smell
- shortcuts / Useful keys for TDD and refactoring
- extract method / Useful keys for TDD and refactoring
- resource, renaming / Useful keys for TDD and refactoring
- resource, moving / Useful keys for TDD and refactoring
- resource, inlining / Useful keys for TDD and refactoring
- constants, creating / Useful keys for TDD and refactoring
- getters/setters, generating / Useful keys for TDD and refactoring
- files, switching / Useful keys for TDD and refactoring
- ReportDisptacher class / Understanding inside-out
- resource
- renaming / Useful keys for TDD and refactoring
- moving / Useful keys for TDD and refactoring
- inlining / Useful keys for TDD and refactoring
- retrospective meeting / Meetings
- roles, Scrum
- about / Roles
S
- Scalatest
- URL / Definition of test
- Scrum methodology
- working with / Working with the Scrum methodology
- roles / Roles
- meetings / Meetings, The story board
- security, Jenkins / Security
- service catalogue, TDD / The service catalogue
- ServiceCatalogue class / Encounter
- setUp() method / Encounter
- SortingAlgorithm interface / Strategy pattern
- source code management, Jenkins / Source code management
- sprint
- about / Revealing Agile methodologies
- Sprint planning / Meetings
- Sprint review / Meetings
- static method / Refactoring legacy code
- StockBroker.getQoute method / The ArgumentMatcher class
- Stock object / Stubbing with callbacks – using the Answer class
- strategy
- conditional logic, replacing with / Replacing conditional logic with strategy
- strategy pattern
- about / Strategy pattern
- components / Strategy pattern
- stub, test doubles / Stub
- Stubbing
- with callbacks, Answer class used / Stubbing with callbacks – using the Answer class
- switch statements / Switch statements
T
- @Test annotation / Exception handling
- takeAction method / Stubbing with callbacks – using the Answer class
- TaxCalculator class / Definition of test
- TDD
- process / The big picture
- about / Understanding TDD – a real-life example
- defining / Definition
- healthcare vocabulary / Common healthcare vocabulary
- procedure / Procedure
- service catalogue / The service catalogue
- MRN / MRN
- encounter / Encounter
- teardown() method / Encounter
- Template method / Duplicate code
- test
- about / Definition of test
- ignoring / Ignoring a test
- test doubles
- categories / Categories of test doubles
- dummy / Dummy
- stub / Stub
- fake / Fake
- mock / Mock
- test method / Definition of test
- test suit / The test suite
- test types
- ThreeGConnection class / Switch statements
- Throwing Exceptions
- about / Throwing exceptions
- TODO / The story board
U
- unit test
- running / Running the first unit test
- unit testing
- qualities / Qualities of unit testing
- user story / Working with the Scrum methodology
V
- value
- asserting / Asserting a value
- verify() method / Drinking Mockito
- verify method / An example of ATDD
- Void methods
- working with / Working with Void methods
W
- wildcard matchers
- need for / Why we need wildcard matchers
- wrong inheritance / Wrong inheritance (refused bequest)