Result may differ depending on what happened previously
Tests component's functionality only
Knows nothing of the component's specific implementation
Ensures that a component does what it promises to do
Also known as Red/Green/Refactor
Makes it easy to create unit tests suites for Java components
the de facto standard automated unit test framework in Java
Have no state
Have a state
Only the interfaces and shell implementation are written before unit tests
Care must be taken to put them into a known good state before testing
Is usually done with an automated framework like JUnit
Component unit tests are written before actual implementation
Used to test lowest level components of an application
Has good integration with Netbeans, Eclipse, IntelliJ, and Maven
Always produce the same result
Include all static methods in Java Math class
Act like a math function
Is responsibility of software developer for each class they create
Test Driven Development
Tests the interface
Each code path through a component is exercised
Also known as White Box Testing
Takes a component's implementation into account
If any unit tests fail, the build fails
Cause no side effects
Cause side effects