Есть ли способ имитировать только часть объекта в Dart с помощью Mockito? - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время я пытаюсь разработать тест-драйв с Flutter и Dart. У меня есть объект, у которого есть два метода, из которых первый выполняет HTTP-вызов, а второй вызывает первый метод. Чтобы протестировать первую функцию, я имитирую зависимости этой функции (а именно http-вызов).

Теперь я хочу протестировать второй метод, но мне не удалось найти способ издеваться только над первая функция при сохранении остальной части объекта. В результате я могу только имитировать зависимости первого метода снова , что приводит к тому, что вся функция выполняется полностью. Это противоречит цели модульного тестирования.

Похоже, что когда дело доходит до имитации объектов, существует только подход «все или ничего». Интересно, как относиться к go в случае, когда некоторый объект полагается на методы одного и того же объекта. Использование Fake и Mock не позволяет мне вызывать исходный метод. spy устарел, и присвоение имитационной функции одной из функций не работает, поскольку Dart не позволяет мне переназначить метод.

1 Ответ

0 голосов
/ 28 мая 2020

Я нашел способ решить свою проблему. Согласно эта ссылка, упомянутая в комментариях, «[t] тестирование с реальными объектами предпочтительнее тестирования с помощью mocks» . В моем случае я просто создал подклассы основного объекта, который тестировал, и заменил (второй) метод, который я не тестировал. Кажется, это помогает.

...