Я видел очень мало проблем с геттерами и сеттерами в дикой природе, и только одна из них могла быть обнаружена с помощью модульного теста, и только тогда, если бы все геттеры и сеттеры были протестированы вместе, а не по индивидуальным методам испытаний.
Рассмотрим ошибку копирования / вставки при повторном использовании одного и того же поля из двух разных пар методов получения / установки. То есть.,
public void setA(Object a) {
this.a = a;
}
public Object getA() {
return a;
}
public void setB(Object a) {
this.a = a;
}
public Object getB() {
return a;
}
Модульные тесты, которые фокусируются на одной паре сеттер / геттер одновременно, не выявят проблему.
Современные IDE будут генерировать геттеры и сеттеры по запросу, поэтому эта ошибка маловероятна, но не все используют современные IDE. (Пользователь vi создал вышеуказанную ошибку.) И если эти методы находятся в простом объекте-держателе данных, проблема может проявиться лишь немного дальше от причины.
По этой причине, если я тестирую геттеры и сеттеры вообще (а я часто этого не делаю), это из одного метода тестирования, который сначала вызывает все сеттеры с различными значениями, а затем проверяет все геттеры.
Одна проблема, с которой вам приходится сталкиваться, заключается в том, что нет гарантии, что метод, который начинает жизнь как «простой» метод получения или установки, останется таким, когда кто-то еще получит в свои руки код и решит, скажем, что добытчик - это хорошее место, чтобы сделать что-то, что связано с побочным эффектом.