Как я становлюсь “тестом, зараженным” TDD? [закрытый]

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
9
задан Andrew Harmel-Law 6 September 2008 в 17:57
поделиться

4 ответа

Часть точки того, чтобы быть "тестом, зараженным", то, что Вы использовали TDD достаточно и видели успехи достаточно, что Вы не хотите кодировать без него. После того как Вы прошли цикл записи тестов сначала, затем кодирования и рефакторинга и наблюдения, что Ваши количества ошибки понизиться и Ваш код поправляются в результате не, только делает это, становятся второй натурой как сказанный Zxaos, Вам нелегко возвращаться для Кодирования Сначала. Это - зараженный тест.

15
ответ дан 4 December 2019 в 06:50
поделиться

Вы уже читали о TDD; чтение больше не собирается волновать Вас.

Вместо этого Вам нужна подлинная история личного успеха.

Вот то, как. Захватите некоторый код от базового модуля, код, который не зависит от внешних систем или слишком многих других подпрограмм. Не имеет значения, насколько сложный или простой стандартная программа.

Затем начните писать модульные тесты против него. (Я предполагаю, что у Вас есть xUnit или подобный для Вашего языка.) Быть действительно неприятным с тестами - тестируют каждый граничный случай, тестируют макс. интервал и минимальный интервал, тестируют пустой указатель, тестируют строки и списки с миллионами элементов, тестируют строки с корейскими и управляющими символами и справа налево арабским и кавычками и обратными косыми чертами и периоды и другие вещи, которые имеют тенденцию повреждать вещи если не оставленный.

То, что Вы найдете, является.... ошибками! Сначала Вы могли бы думать, что эти ошибки не важны - Вы еще не столкнулись с этими проблемами, Ваш код, вероятно, никогда не делал бы этого и т.д. и т.д. Но мой опыт состоит в том, если Вы будете продолжать продвигаться, то Вы будете поражены количеством небольших проблем. В конечном счете становится трудно полагать, что ни одна из этих ошибок никогда не будет вызывать проблему.

Плюс Вы добираются, большое чувство выполнения с чем-то сделано действительно, действительно хорошо. Мы знаем, что код никогда не прекрасен и редко свободен от ошибок, таким образом, хорошо, когда мы исчерпали столько тестов, что мы действительно чувствуем себя уверенно. Уверенность является хорошим чувством.

Наконец, я думаю последнее событие, которое инициирует любовь, произойдет недели или несколько месяцев спустя. Возможно, Вы исправляете ошибку или добавляете опцию или осуществляете рефакторинг некоторый код и что-то, что Вы делаете повредит модульный тест. "Ха?" Вы скажете, не понимая, почему новое изменение даже относилось к поврежденному тесту. Затем Вы найдете его и найдете просвещение. Поскольку Вы действительно не знали о взломе кода, и тесты сохранили Вас.

Аллилуйя!

15
ответ дан 4 December 2019 в 06:50
поделиться

Учитесь о TDD запускать, и затем начинать интегрировать его в Ваш рабочий процесс. При использовании методологий достаточно Вы найдете, что они становятся второй натурой, и Вы начнете структурировать все свои задачи разработки в той платформе.

Кроме того, начните использовать J-единицу (или X-единицу) платформа для Вашего предпочтительного языка.

3
ответ дан 4 December 2019 в 06:50
поделиться

Одно слово, практика! Существуют немного служебные с выполнением TDD, и способ преодолеть его состоит в том, чтобы практиковать и удостовериться, что Вы используете инструменты для помощи процессу. Необходимо изучить инструменты как свои пять пальцев. После того как Вы изучаете инструменты для соглашений с процессом, который Вы изучаете, затем он нажмет, и Вы станете быстрыми с записью тестов сначала для промытия кода. Затем Вы будете "зараженным тестом".

Я ответил на вопрос, подобный этому некоторое время назад. Можно хотеть проверить его также. Я упоминаю некоторые инструменты и объясняю изучение TDD. Из этих инструментов Resharper и выбор хорошей платформы насмешки очень важны для того, чтобы сделать TDD. Я не могу подчеркнуть изучение этих инструментов для соглашений со средой тестирования, Вы используете достаточно.

1
ответ дан 4 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: