Я следую TDD религиозно. Мои проекты обычно имеют 85% или лучше тестовое покрытие, со значимыми тестовыми примерами.
Я много работаю с HBase , и основной интерфейс клиента, HTable, очень неприятен. Для написания модульных тестов у меня уходит в 3 или 4 раза больше времени, чем для написания тестов, использующих действующую конечную точку.
Я знаю, что с философской точки зрения тесты, использующие макеты, должны иметь приоритет над тестами, которые используют действующую конечную точку. Но издевательство над HTable - серьезная боль, и я не уверен, что он дает много преимуществ по сравнению с тестированием на живом экземпляре HBase.
Каждый в моей команде запускает экземпляр HBase с одним узлом на своей рабочей станции, и у нас есть экземпляры HBase с одним узлом, работающие на наших коробках Jenkins, так что это не проблема доступности. Тесты живых конечных точек, очевидно, занимают больше времени, чем тесты, использующие макеты, но нас это не волнует.
Прямо сейчас я пишу живые тесты конечных точек И тесты на основе макетов для всех моих классов. Я хотел бы отказаться от насмешек, но я не хочу, чтобы в результате качество ухудшалось.
Что вы все думаете?