Шаблоны проектирования Тестирование значений нижней и верхней границы в Python Code Review Stack Exchange

Тестирование значений нижней xm forex review и верхней границы в Python.

Функциональность кода.

Шаблоны проектирования Тестирование значений нижней и верхней границы в Python Code Review Stack Exchange граница

Следующий код проверяет, задаются ли значения, которые пользователь указывает для нижней и верхней границы для двух свойств:

Нижняя граница меньше верхней. Значения больше 0 (положительные).

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

Выбор дизайна.

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

Нижняя граница отрицательная, верхняя отрицательная. Нижняя граница нулевая, верхняя отрицательная. Нижняя граница положительная, верхняя отрицательная..

Вопрос.

Рекомендуется ли в любом случае включать явную проверку в основной код, даже если она протестирована в модульных тестах??

1 ответ 1.

За исключением необычных обстоятельств, классы — это вещи или сущности — отсюда и термин объекты — в то время как функции или forex exchange методы — это действия или операции. Вы хотите назвать их соответственно. По этой причине Get_labels кажется мне классом со странным названием. Основываясь на том, что вы нам показали, я мог бы предложить в качестве альтернативы название Bounds. Дополнительным преимуществом этого имени является то, что оно позволяет сокращать имена атрибутов без потери смысла..

Шаблоны проектирования Тестирование значений нижней и верхней границы в Python Code Review Stack Exchange шаблон

Отдельный метод проверки базовой достоверности границ кажется мне излишним — если логика проверки не станет намного более сложной или если она не будет использоваться в другом месте кода. Поэтому я бы просто сделал простую проверку в __init __ () в этом случае.

Избегайте соблазна использовать в своем коде болтливые или подробные сообщения. Это не поможет вам или вашим пользователям в долгосрочной перспективе — по крайней мере, по моему опыту. Делайте вещи прямыми и строго краткими. На самом деле, часто бывает полезно, чтобы сообщения были скорее техническими, чем естественными по своей стилистической направленности. Под этим я подразумеваю, а не описание проблемы так, как можно было бы устно передать человеку ("Нижняя граница, равная 1000, должна быть меньше верхней границы, которая равна 125."), вам часто лучше описать проблему шаблонным, схематическим, компьютерным способом. Среди прочего, этот подход позволяет вам принять стандартный формат для всех сообщений об ошибках в приложении. Формат сообщения об ошибке, показанный в приведенной ниже перезаписи, в общем можно описать как ПРОБЛЕМА: САМ. Последовательный подход упрощает написание кода проверки в первую очередь и его поддержку в течение долгого времени. Последовательность также придает пользователям профессионализм..

Наряду с этими xm trading review строками вы часто можете упростить создание таких сообщений проверки, сначала определив __repr __ () для своего класса, как показано ниже..

Для проверок, которые у вас есть до сих пор, ValueError больше подходит, чем создание общего исключения. Кроме того, вы можете рассмотреть возможность проверки других типов ошибок: например, ограничения ограничены только целыми числами.?

Если вы это проверите, поднимите TypeError .

Наконец, стилистическая и, по общему признанию, субъективная тонкость. Ниже приведена трассировка стека из написанного вами кода. Мы видим подробное сообщение дважды universal partners fx review, сначала в виде f-строки, а затем с заполненными параметрами. Что в этом плохого? Ничего серьезного, но он тяжелый, утомительный, даже без определенной элегантности. Как минимум, можно сказать, что повторение подробного сообщения слегка отвлекает пользователя, создавая дополнительную визуальную или когнитивную нагрузку на пользователя, чтобы понять, что происходит. Сравните это с трассировкой стека из исправленного кода.

Код с некоторыми возможными изменениями, которые вам следует учитывать:

Похожие статьи