Является ли плохой практикой добавление оператора возврата с единственной целью тестирования метода без использования его в самом коде?
В качестве примера я тестирую метод чтения, за которым следуетсерия методов, которые в конечном итоге создают объект со свойствами, поглощенными из строк файла, в котором он читается.
Из того, что я понял, метод чтения может быть протестирован с использованием Mockito без необходимости добавления оператора возврата,Или можно проверить, вызывается ли другой метод (readPerLine
), но я пока не нашел подходящей процедуры тестирования для этого.Эти два варианта могут означать, что мой общий вопрос не имеет значения, если используется правильная процедура кодирования, если да, пожалуйста, дайте мне знать.
Однако в настоящее время следующие два варианта являются наиболее простым способом проверки (часть)метод чтения:
- Добавьте оператор возврата, содержащий массив строк, в которых читается метод, который выполняется в конце метода.
- Проверьте комбинациюметод read и последующие методы, которые создают объекты путем измерения правильности свойств объектов.И путем тестирования последующих методов индивидуально.Это не является предпочтительным, поскольку двойная ошибка, 1 в методе чтения и 1 в концептуальном проекте последующих методов, может отменить во время этого тестирования, но вызвать ошибки в жизни.
- Изменение (чтение) метод, который возвращает массив строк, который передается последующим методам из Main.
Пример кода метода чтения, который я сейчас написал:
public void readFile(String filename) {
FileReader reader;
BufferedReader br;
String line = null;
try {
br = new BufferedReader(new FileReader(filename));
while ((line = br.readLine()) != null) {
readPerLine(line); //converts line into properties for an object.
}
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Так что я еще не решил следующую дилемму;
- Я знаю, что иногда вам нужно переписать свой метод, чтобы разрешить его тестирование.
- Но я не знаю, будут ли добавляться такие функции, как операторы возврата, которые не используются в реальном кодено только для тестирования, это хорошая или плохая практика.Кроме того, если я это сделаю, я все еще не полностью протестирую метод чтения, вызов другого метода все еще не проверен.
- Или не возникнет ли вообще эта дилемма, если я вначале применяю надлежащий этикет.