Ваше значение заголовка неверно, поэтому оно не будет иметь никакого эффекта.
Cache-Control: 1728000
Это должно быть ...
Cache-Control: max-age=1728000
Также обратите внимание, что S3 полностью игнорирует .htaccess
файлы.
См. Также https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control .
Необходимо всегда тестировать regexen, во многом как любой другой блок кода. Они самое большее просты функция, которая берет строку и возвращает bool или возвращает массив значений.
Вот некоторые предложения на том, что думать о когда дело доходит до разработки модульных тестов на regexen. Это не не надежные предписания для дизайна модульного теста, но некоторые инструкции для формирования взглядов. Как всегда, взвесьте потребности своего тестирования по сравнению со стоимостью отказа, сбалансированного со времени, требуемого реализовать их всех. (Я нахожу, что 'реализация' теста является легкой частью!:-])
Вопросы для рассмотрения:
Для regex, который возвращает списки, также помните:
(?<name> thing1 ( thing2) )
) - это поведение может отличаться на основе regex механизма, который Вы используете. , Если Вы используете какие-либо расширенные функции, такие как неотслеживание в обратном порядке групп, удостоверьтесь, что Вы понимаете полностью, как функция работает, и использование инструкций выше, строки сборки в качестве примера, которые должны работать на и против каждого из них.
В зависимости от Вашей regex реализации библиотеки, способ, которым получены группы, может отличаться также. Perl 5 имеет 'открытое упорядочивание' порядка paren, C# имеет это частично за исключением именованных групп и так далее. Удостоверьтесь, что экспериментировали со своей разновидностью для знания точно, что она делает.
Затем интегрируйте их прямо в с Вашими другими модульными тестами, или в их собственном модуле или вместе с модулем, который содержит regex. Для особенно противного regexen можно найти необходимость в партиях и большом количестве тестов, чтобы проверить, что шаблон и все функции, которые Вы используете, корректны. Если regex составит большое (или почти все) работы, которую делает метод, то я буду использовать совет выше исходным данным вида для тестирования той функции а не regex непосредственно. Тот путь, если позже Вы решаете, что regex не является способом пойти, или Вы хотите разбить его, можно получить поведение regex, обеспеченный, не изменяя интерфейс - т.е., метод, который вызывает regex.
, пока Вы действительно знаете, как regex функция, как предполагается, работает в Вашей разновидности regex, необходимо смочь разработать достойные тестовые сценарии для него. Просто удостоверьтесь, что Вы действительно, действительно, действительно понимаете, как функция работает!
Просто бросьте набор значений в нем, проверив, что Вы получаете правильный результат (является ли это match/no-match или конкретным заменяющим значением и т.д.).
Значительно, если существуют какие-либо угловые случаи, который Вы удивление , ли они будут работать или нет, получите их в модульном тесте и объясните в комментарии , почему они работают. Тем путем кто-то еще, кто хочет изменить regex, сможет проверить, что угловой случай все еще работает, и он даст подсказку им относительно того, как зафиксировать его, если он повреждается.
По-видимому, Ваши регулярные выражения содержатся в рамках метода класса. Например:
public bool ValidateEmailAddress( string emailAddr )
{
// Validate the email address using regular expression.
return RegExProvider.Match( this.ValidEmailRegEx, emailAddr );
}
можно теперь записать тесты для этого метода. Я предполагаю, что точка, то, что regex является деталью реализации - Ваш тест должен протестировать интерфейс, который в этом случае является просто проверить почтовым методом.
Я создал бы ряд входных значений с ожидаемыми выходными значениями, во многом как любой тестовый сценарий.
кроме того, я могу полностью рекомендовать свободный Инструмент Regex Экспресс . Это - фантастический regex редактор/отладчик, который сохранил меня дни боли в прошлом.
Я всегда тестирую их так же, как я делаю любую другую функцию. Удостоверьтесь, что они соответствуют вещам, Вы думаете, что они должны соответствовать и что они не соответствуют вещам, они не были должны.
Я думаю, что простой вход ouput тест достаточен. С течением времени и некоторые случаи происходят, в котором перестал работать Ваш regex, не забывайте добавлять эти случаи к тесту также при фиксации.
Мне нравится тестировать regexp против противоположного regex, я выполнюсь и против возможного теста и удостоверюсь, что пересечение пусто.
Подумайте о том, чтобы сначала написать тесты, а затем написать столько регулярных выражений, сколько необходимо для прохождения каждого теста. Если вам нужно расширить ваше регулярное выражение, сделайте это, добавив неудачные тесты.