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