Методы модульного тестирования - PullRequest
1 голос
/ 13 января 2011

Если у меня есть такой служебный метод, как приведенный ниже, как мне его тестировать? Кажется, если бы я хотел определить, что вывод был правильным, мне пришлось бы встроить код в метод теста? Я мог видеть, была ли условная логика, такая как, если входная строка пуста, возвращать ноль, но проверка на корректный вывод кажется сложной.

public static string EncodeTo64(string input)
{
    byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(input);
    string returnValue = System.Convert.ToBase64String(b);
    return returnValue;
}

Ответы [ 4 ]

5 голосов
/ 13 января 2011

Я бы проверил это, введя значение, из которого я знал правильный вывод. Либо путем его расчета заранее, либо путем сравнения его с известным значением. Вы, вероятно, можете сами вычислить вывод для короткой строки.

Далее я бы протестировал поведение методов для граничных условий, таких как нулевые значения и пустые строки.

1 голос
/ 13 января 2011

За некоторыми исключениями, вы вообще не будете тестировать вывод, потому что он реализован другим модулем - классом System.Convert, и он уже хорошо протестирован.

Это будет иметь смысл писать тесты, которые документируют, что делает метод, когда вы передаете ему необычные входные данные: ноль, string.Empty, строки с кодировками не-ASCII и т. Д.

1 голос
/ 13 января 2011

Это зависит от того, что означает «правильность» для этой функции для вас, разработчика.Я бы преобразовал известную строку в вывод, проверил ее правильность в соответствии с любыми критериями, а затем сравнил, что результат функции соответствует полученному мной результату.Примерно так:

const string expectedBase64String = "abc123$$%++";
const string testString = "Not the base 64 source of above";

Assert.AreEqual(expected, Utility.EncodeTo64(testString));

По сути, вы правы ... вам нужно полагаться на какое-то другое определение правильности, отличное от поведения вашего кода, если только все, что вам нужно проверить, это "этовсе еще производя то, что он сделал в первый раз, когда я его запустил ".

0 голосов
/ 13 января 2011

Используйте предопределенный ввод и полученный правильный вывод и сравните с тем, что дает ваш метод.Сделайте это для нескольких пар ввода / вывода, чтобы проверить общую правильность вашего метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...