То, что 100%-е покрытие является мифом, который это, не означает, что 80%-е покрытие бесполезно. Цель, конечно, составляет 100%, и между модульными тестами и затем интеграционными тестами, можно приблизиться к ней.
то, Что невозможно в поблочном тестировании, предсказывает весь полностью странный вещи, которые Ваши клиенты сделают к продукту. Как только Вы начинаете обнаруживать эти ошеломляющие извращения своего кода, удостоверьтесь, что прокрутили тесты для них назад в набор тестов.
SQL Server 2008:
select 1
where 5 between 1 and 7
1 результат
select 1
where 5 between 7 and 1
0 результатов
На основе этих результатов и Postgre Docs я бы предположил, что стандарт ANSI следующим образом (хотя я не могу найти этот документ).
a between x and y
==
a >= x AND a <= y
ОБНОВЛЕНИЕ:
В спецификации SQL-92 говорится (цитата):
"X BETWEEN Y AND Z" is equivalent to "X>=Y AND X<=Z"
Да, вы правы, это только синтаксический сахар для упомянутой вами конструкции.
Да! Порядок аргументов в предикате BETWEEN имеет значение. И, да, это [в основном] синтаксический сахар для формы сравнения AND-ed.
Вышеупомянутое «в основном» исходит из того факта, что, хотя логически эквивалентны , два выражения могут (вероятно, в прошлое ...) получить четкий план запроса на некоторых серверах SQL. Можно с уверенностью предположить, что в настоящее время большинство серверов обеспечивают оптимальную обработку этого типа фильтра, независимо от его формы.