В моем веб-приложении есть класс для анализа и манипулирования данными, хранящимися в хэше URL-адреса, которые выглядят примерно так:
http://myapp.com/#!/location/hornsea/season/spring/facilities/+shop+swimming-airport/size/50
Для возможности модульного тестирования различных перестановок я храню некоторые URL-фрагменты в объекте (например,
var fragments {
valid: ["/location/hornsea", "/season/winter","/size/50"],
invalid: ["location/hornsea", "/seasonwinter","/size/fifty"]
}
И затем перед запуском моих тестов я динамически создаю все возможные действительные и недействительные URL-адреса, а затем перебираю их, добавляя тест для каждого URL-адреса.
Это нормально, когда я запускаю тест на достоверность URL, так как я просто проверяю true или false в моем методе isValid (), но при тестировании на получение параметров из URL я не знаю как чтобы подойти к проблеме - мне нужно сравнить возвращаемое значение (например, {location: "hornsea" "}) с ожидаемым значением, но так как анализируемая строка динамически создается перед запуском теста, у меня нет ожидаемого значения хранится где угодно.
Теперь я не уверен, является ли мой подход излишним - нужно ли мне проверять все методы на всех возможных структурах url? Могу ли я настроить тесты, которые запускаются со всеми возможными URL-адресами, когда это легко сделать, но работать с более управляемым подмножеством, когда мне нужен более точный контроль над тестами, и все же удается охватить все возможные варианты. то есть я мог бы написать набор тестов, в котором тестирование
http://myapp.com/season/autumn
достаточно для того, чтобы охватить и такие примеры, как следующие.
http://myapp.com/location/dungeness/season/autumn
http://myapp.com/location/camberwell/seasonautumn
И как я могу быть уверен, что я не оставил никаких пробелов? Существуют ли общие подходы к решению проблемы такого рода или это что-то очень специфичное для конкретного приложения?