| The [Google Java Style Guide ยง5.2][style] provides rules for naming identifiers. | |
| ## Test methods | |
| The style guide includes the following special case for test methods: | |
| > Underscores may appear in JUnit test method names to separate logical | |
| > components of the name, with each component written in `lowerCamelCase`, for | |
| > example `transferMoney_deductsFromSource`. | |
| Note that this only applies to test methods themselves, not to helper methods | |
| called by test methods. | |
| ```java | |
| @Test | |
| public void transferMoney_deductsFromChecking() { | |
| transferMoney_deductsFromSource(Source.CHECKING); | |
| } | |
| @Test | |
| public void transferMoney_deductsFromSavings() { | |
| transferMoney_deductsFromSource(Source.SAVINGS); | |
| } | |
| // this method name shouldn't use underscores | |
| private void transferMoney_deductsFromSource(Source source) { ... } | |
| ``` | |
| Instead of having a group of test methods call the same helper method with | |
| varying parameters, consider a [parameterized test][parameterized] , or | |
| splitting the tests into separate setup and assert helper methods (named | |
| appropriately) to make the flow of each test clearer. | |
| [style]: https://google.github.io/styleguide/javaguide.html#s5.2-specific-identifier-names | |
| [parameterized]: https://junit.org/junit4/javadoc/4.12/org/junit/runners/Parameterized.html |