Предположим, у меня есть программа, которая выполняет три вещи подряд:
Task 1
Task 2
Task 3
Теперь предположим, что я хочу написать BDDs
для Задачи 2. Скажем, когда это не удалось. Теперь Task 2
выполняется только после успеха Task 1
. Но сама задача 1 может быть успешной во многих отношениях (например, моя программа повторяет попытку Task 1
, если нижестоящая система отвечает с ошибкой в течение фиксированного числа раз). Мой вопрос заключается в том, какое поведение Task 1
следует учитывать при написании тестов для Task 2
?
Given_Task2Fails_Task1IsRetried_Expect_SomeBehaviour
Given_Task2Fails_Task1IsNotRetried_Expect_SomeBehaviour
Если это так, то мне нужно создать все перестановки и комбинации для каждого из задачи, сохраняющие задание 2 как постоянное. Это взрывает количество сценариев ios с большим количеством дублирующегося кода. Вот что я имею в виду:
Given_Task2Fails_Task1IsRetried_Task3IsNotRetried_Expect_SomeBehaviour
Given_Task2Fails_Task1IsNotRetried_Task3IsNotRetried_Expect_SomeBehaviour
Given_Task2Fails_Task1IsRetried_Task3IsRetried_Expect_SomeBehaviour
Given_Task2Fails_Task1IsNotRetried_Task3IsRetried_Expect_SomeBehaviour
Как мне написать solid scenar ios в таких случаях? В идеале я хотел бы изменить каждый параметр моей системы, сохраняя постоянным значение Task 2
. Но это похоже на метод грубой силы, и я уверен, что есть лучшие подходы.