Одна вещь, которая беспокоит меня о фальшивом фреймворке, это то, что «какая функция должна быть сделана через i / p» через
when (mock.someMethod («некоторый аргумент»)). ThenReturn («что-то»);
оператор распространяется на многие классы модульных тестов.
Позвольте мне привести пример. Допустим, была функция интерфейса DAO getEmp (int EmpID), которая возвращала объект Employee при передаче идентификатора сотрудника в качестве параметра. Предположим, что эта функция была смоделирована 10 различными классами модульных тестов. Теперь, если в будущем эта функция была изменена так, чтобы она возвращала более новую версию объекта Employee, нужно было бы перейти к каждому из 10 различных классов, чтобы обновить это изменение.
Недостатки заключаются в следующем ...
a) Я не знаю, как выяснить все классы, которые высмеивают эту функцию, чтобы я мог обновить это изменение.
b) Мои существующие тестовые случаи, которые используют фиктивный объект DAO, по-прежнему блаженно не знают об изменениях, произошедших с интерфейсом DAO, потому что имитация не изменилась и, следовательно, продолжает оставаться зеленой.
В идеале, если бы я сам кодировал один фиктивный класс и использовал его везде, у меня было бы только одно место для обновления для более новой версии объекта Employee. Кроме того, как только я обновлю в этом одном месте, все мои существующие тестовые случаи, которые используют макет, сломаются, и я буду тогда точно знать, в какие места мне нужно пойти и выполнить обновление для нового объекта Employee.
Любые мысли о моих взглядах ..