Какие должны быть кейсы по юнит-тестированию?
===============================================

 Недавно начал заниматься модульным тестированием и задался вопросом- на какие кейсы необходимо тестировать код.   

Для себя выделил: на проверку вызовов замоканых методов, на проверку на null и на ожидаемые ошибки в различных случаях. Какие я мог пропустить кейсы и правильно ли я впринципе понимаю unit-тестирование? 

 В принципе, правильно понимаешь.  
  

Юнит-тесты призваны обеспечить проверки двух типов - проверка результатов и проверка поведения.  
  

К примеру, тестируем метод сортировки массива строк.  
  

Первая проверка очевидна:  
`sort({"c", "a", "b"}) -> {"a", "b", "c"}`  
  

Со вторым кейсом сложнее:  

```
sort(null)
sort({})
sort({"a"})
sort({"c", null "b"})
sort({"c", "", "b"})
sort({"b", "a", "b"})
```
  
  

Сложнее, потому что на этом этапе надо сообразить, какой набор входящих данных может оказаться критическим (в зависимости от используемого алгоритма) и обеспечить необходимые проверки того, что тестируемый метод ведет себя корректно.