Как я могу проверить то, что меняется? - PullRequest
1 голос
/ 10 ноября 2011

Я хочу протестировать сценарий, который с учетом некоторых параметров реплицирует данные из нашего API в местоположение в нашей CDN.

Однако это постоянно меняется.Как мне добавить тест для него?Может быть, добавить что-то в API, который всегда возвращает одно и то же при заданных параметрах?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 10 ноября 2011

Вы касаетесь одного из очень важных аспектов юнит-тестирования: он заставляет вас писать «хороший» код.Если вы хотите, чтобы ваш код был успешно тестируемым в тех случаях, которые вы описываете, у вас есть для использования хороших практик, таких как инверсия управления и разделение проблем .

Другими словами, чтобы написать успешные тесты, вам нужно , чтобы абстрагировать ваши зависимости, предпочтительно от интерфейсов.Затем вы можете запустить свои тесты, введя заглушку или смоделированную реализацию этого интерфейса, который имеет воспроизводимый и контролируемый вывод.Делая это, вы проверяете только логику (поведение или состояние, в зависимости от вкусов) тестируемого устройства, а не свои зависимости.Это вызывает у вас разделение интересов.

(я бы привел примеры, но вы не указали, какой язык вы используете)

1 голос
/ 10 ноября 2011

Я не пытаюсь быть умным, но если у вас нет определенных ожиданий, вам нечего утверждать в тесте.

Проверьте все, что должно быть там. Если вам не важна какая-то часть вывода, просто проверьте его существование. Если в выводе должна быть корреляция некоторых вещей, проверьте это.

0 голосов
/ 10 ноября 2011

У вас есть начало вашего ответа.Чтобы протестировать ваш сценарий, вам нужна тестовая среда, которая позволяет вам передавать в сценарий известное состояние ввода, захватывать выходные данные и проверять выходные данные на правильность.(постоянно меняется) есть.Расположение на CDN?Если это так, вам нужно заморозить это место для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...