В настоящее время я пытаюсь разработать тест-драйв с Flutter и Dart. У меня есть объект, у которого есть два метода, из которых первый выполняет HTTP-вызов, а второй вызывает первый метод. Чтобы протестировать первую функцию, я имитирую зависимости этой функции (а именно http-вызов).
Теперь я хочу протестировать второй метод, но мне не удалось найти способ издеваться только над первая функция при сохранении остальной части объекта. В результате я могу только имитировать зависимости первого метода снова , что приводит к тому, что вся функция выполняется полностью. Это противоречит цели модульного тестирования.
Похоже, что когда дело доходит до имитации объектов, существует только подход «все или ничего». Интересно, как относиться к go в случае, когда некоторый объект полагается на методы одного и того же объекта. Использование Fake
и Mock
не позволяет мне вызывать исходный метод. spy
устарел, и присвоение имитационной функции одной из функций не работает, поскольку Dart не позволяет мне переназначить метод.