Я столкнулся с ситуацией, я не уверен, как тестировать: алгоритмы. В частности, я пытаюсь написать метод Adler32 и создать для него единичный тест, но на данный момент я ударил кирпичную стену.Как вы тестируете алгоритм в C#?
Моя первая попытка оказалась сокращенной версией того же кода, что и у меня в моем методе, что кажется очень неправильным. Моя следующая попытка состояла в том, чтобы иметь таблицу входных значений с ожидаемыми результатами, а затем сравнить ожидаемые результаты с фактическими результатами ... это показалось хорошей идеей, пока я не понял, что единственный способ, которым я знаю, как заполнить эту таблицу, - это запустить алгоритм. Поэтому я почти застрял. Как можно провести единичное тестирование алгоритма без повторного использования алгоритма в модульных тестах (прямо или косвенно)?
Не знаете, в чем проблема с передачей * Известный * ввод и проверка результатов соответствует * известному * результату ... Как «добавить два числа» будет проверено с помощью известного ввода '{2,2}' и проверено, что результатом является ' 4' (без пробега '2 + 2' в тесте) ... –
@AlexeiLevenkov: У меня нет проблем с этим, кроме единственного способа, которым я знаю, как генерировать известный вход/результат, повторно используя тот же алгоритм, я пытаясь проверить. Как узнать, что результат является ** правильным ** для непроверенного алгоритма? –
Известный быть хорошим Входы/выходы будут в порядке, но, как вы сказали, вам нужно рассчитать выход. Один из способов - использовать уже зарекомендовавшую себя работу Adler32. Или вы можете сломать алгоритм на части, которые вы можете проверить. – Kyro