- Be critical to algorithms/code
- Consider/test corner cases
- Attempt to formally reason about correctness
- Create automated test cases
Test-driven development: Write test -> Write code -> Test
Unit test: testing method
Then integration test: e.g. test your method with database connection etc.
JUnit: lightweight unit test platform
Components:
1. Code to setup tests
2. Code to perform tests
3. Code to cleanup tests
@Before
setup: is run before each test to initialize variables and objects
@BeforeClass
setupClass: is run only once before the class to initialized objects
@Test
test<feature>
Denotes a method to test <feature>
Two useful methods:
fail
try { emptyList.get(0); fail("Check out of bounds"); } catch (IndexOutOfBoundsException e) { }emptyList.get(0) should throw an exception, if it doesn't, we call the fail method.
assertEquals
assertEquals("Check first", "A", shortList.get(0));assertEquals enforces that shortList.get(0) is "A". Otherwise, throws an error.
@After
tearDown: can be useful if your test constructed something which needs to be properly torn down (e.g. a database).
@AfterClass
tearDownClass: if your setupClass constructed something which needs to be properly torn down.
No comments:
Post a Comment