Модульные тесты призваны показать, что поведение объекта соответствует ожидаемому поведению.Они не предназначены для того, чтобы убедиться, что язык Java работает правильно.
Здесь вы видите причудливую структуру данных без какого-либо поведения.В этом случае каждое назначение опосредовано вызовом метода, и каждое разыменование также опосредовано вызовом метода.Поскольку объектно-ориентированное программирование - это «данные + поведение» = объекты, а в этом коде отсутствует поведение, его можно назвать необъектно-ориентированным кодом.
Иногда Java использует необъектно-ориентированные классы для облегчения передачиинформации.Класс гарантирует, что вся информация передается как единое целое при выполнении сериализации.Таким образом, наличие такого класса не является показателем того, что код неправильный;однако, если вы столкнетесь со слишком большим количеством таких классов, значит, что-то будет не так.
Одним из ключевых элементов тестирования является то, что на самом деле это не тест, если тест не может быть неудачным.Если тест не может провалиться, это просто занятая работа.Если предположить, что одно из этих полей не может быть нулевым, то установщик может выглядеть как
public void setName(String name) {
if (name == null) throw new IllegalArgumentException("name cannot be null");
this.name = name;
}
И тогда у вас есть что проверить.В противном случае вы просто проверяете, не произошел ли оператор присваивания.Кроме того, если бы оператор присваивания потерпел неудачу, я бы поспорил, что JVM скоро выйдет из строя довольно рано (а не позже), и вы не можете доверять своим тестам, чтобы сообщать правильно.