Whitebox или blackbox тестируют протокол, который определяет некоторые операции - PullRequest
0 голосов
/ 21 декабря 2018

Я реализую какую-то операцию, и она состоит из нескольких отдельных логических шагов, таких как выборка нескольких объектов, их преобразование, сохранение их в базе данных и так далее.Я определяю протокол P для этой операции и хочу проверить, правильно ли она реализована в реализующих классах.

Каковы плюсы и минусы разделения операции на различные методы в протоколе вместо того, чтобы иметь только один метод для тестирования?

Другими словами,Должно ли это быть в первую очередь проверено на «белый ящик» или «черное»?Кто-то может утверждать, что реализующие классы должны просто выполнять операцию, а отдельные шаги являются деталями реализации.Но идея состояла в том, чтобы разбить их так, чтобы все они могли быть проверены.

Невозможно показать точный код, но это что-то вроде следующего:

protocol P {
    func step1()
    func step2()
    ....
}

Другой варианттогда будет

protocol P {
    doOperation()
}
...