Возможно, меня заменит робот для проверки кода.  Есть некоторые отзывы, которые я повторяю снова и снова.  Вот некоторые из моих наименее любимых: 
Общая структура кода
Брось остальное
 Когда if заканчивается return else является излишним и создает ненужные отступы. 
| 01 02 03 04 05 06 07 08 09 10 11 | if(foo) {   returnbar;} else{    returnbaz;}// should be replaced byif(foo) {   returnbar;}returnbaz; | 
Массив -> Список -> Поток
| 1 2 3 4 5 6 | List< ... > list = Arrays.asList(someArray);list.stream(...)// should be replaced by Arrays.stream(someArray) | 
Тестовый код
Прежде чем это тяжелый инициализатор
  Мы используем метод @Before для настройки сложных объектов, часто там, где нам нужно выполнить обработку, чтобы вычислить, что член экземпляра класса должен иметь в нем.  На другом конце спектра это перебор: 
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | // this is part 1 of twoprivateMyService myService;@Beforepublicvoidbefore() {    // now initialize    myService = newMyService().init(123);}// the above code can be expressed in the initializer// and is simple to read there...// if it threw exceptions or needed some more complex // set up, it wouldn't be// it's in one clear place where we know where to // find itprivateMyService myService = newMyService()    .init(123); | 
Тестовые броски
| 01 02 03 04 05 06 07 08 09 10 11 12 | @TestpublicvoidsomeTest()     throwsIOException, JsonException {}// never bother with multiple or specific exception // throws in tests nobody cares and it's just noise// the test runner will catch anything!@TestpublicvoidsomeTest() throwsException {} | 
AssertJ для размера
| 1 2 3 4 5 | //long-windedassertThat(list.size()).isEqualTo(2);//should beassertThat(list).hasSize(2); | 
AssertJ для всего
  Встроенные утверждения JUnit не так богаты, как предоставляемые AssertJ.  Как минимум, я рекомендую использовать некоторую форму assertThat , чтобы в конечном итоге вы не использовали утверждение, которое немного слабовато для ситуации. 
Ваш assertEquals — неправильный путь
  В 60% случаев, когда я assertEquals код с assertEquals , порядок неверный.  Подсказка: используйте AssertJ !!!  Юнит не прав в этом!  Мы должны читать слева направо. 
| 1 2 3 4 5 | // wrong:assertEquals(something.getFoo(), 123);// it's expected IS actualassertEquals(123, something.getFoo()); | 
Mockito Static Imports
| 1 2 3 4 5 | // this is not normalMockito.verify(mock).called();// static import all mockito methodsverify(mock).called(); | 
Mockito Times (1)
| 1 2 3 4 5 6 7 | // this is a tautologyverify(mock, times(1)).called();// look at what verify(mock) does internally// replace withverify(mock).called(); | 
| Смотрите оригинальную статью здесь: Неэффективная Java Мнения, высказанные участниками Java Code Geeks, являются их собственными. |