У меня есть метод, который, учитывая угол для севера и угол для подшипника, возвращает значение точки компаса из 8 возможных значений (север, северо-восток, восток и т. Д.). Я хочу создать модульный тест, который обеспечит приличный охват этого метода, предоставляя различные значения для Севера и Пеленга, чтобы обеспечить достаточный охват, чтобы дать мне уверенность в том, что мой метод работает.
Моя первоначальная попытка сгенерировала все возможные значения целых чисел для Севера от -360 до 360 и проверила каждое значение подшипника от -360 до 360. Однако мой тестовый код оказался еще одной реализацией кода, который я тестировал. Это заставило меня задуматься о том, что будет лучшим тестом для этого, так что мой тестовый код не будет содержать те же ошибки, что и мой рабочий код.
Мое текущее решение состоит в том, чтобы тратить время на написание XML-файла с точками данных и ожидаемыми результатами, которые я могу прочитать во время теста и использовать для проверки метода, но это кажется чрезвычайно трудоемким. Я не хочу писать файл, который содержит тот же диапазон значений, что и мой первоначальный тест (это было бы много XML), но я хочу включить достаточно для адекватного тестирования метода.
- Как проверить метод, не переопределив метод?
- Как мне добиться адекватного охвата, чтобы быть уверенным в методе, который я тестирую, без необходимости иметь контрольные точки для всех возможных входов и результатов?
Очевидно, что не останавливайтесь слишком подробно на моем конкретном примере, поскольку это относится ко многим ситуациям, когда существуют сложные вычисления и диапазоны данных, подлежащих проверке.
ПРИМЕЧАНИЕ. Я использую Visual Studio и C #, но считаю, что этот вопрос не зависит от языка.