Я реализую какую-то операцию, и она состоит из нескольких отдельных логических шагов, таких как выборка нескольких объектов, их преобразование, сохранение их в базе данных и так далее.Я определяю протокол P
для этой операции и хочу проверить, правильно ли она реализована в реализующих классах.
Каковы плюсы и минусы разделения операции на различные методы в протоколе вместо того, чтобы иметь только один метод для тестирования?
Другими словами,Должно ли это быть в первую очередь проверено на «белый ящик» или «черное»?Кто-то может утверждать, что реализующие классы должны просто выполнять операцию, а отдельные шаги являются деталями реализации.Но идея состояла в том, чтобы разбить их так, чтобы все они могли быть проверены.
Невозможно показать точный код, но это что-то вроде следующего:
protocol P {
func step1()
func step2()
....
}
Другой варианттогда будет
protocol P {
doOperation()
}