Автоматическая генерация Модульных тестов на код Java прежней версии

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

11
задан auramo 17 September 2008 в 08:35
поделиться

3 ответа

Не свободный. Не открытый исходный код. Но я нашел, что Мешалка AgitarOne (http://www.agitar.com/solutions/products/agitarone.html) ДЕЙСТВИТЕЛЬНО хороша для автоматически тестов электростанции И поиска нежелательных неясных побочных эффектов

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

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

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

После того как Вы находите ошибки, запишите модульные тесты только на них. Когда Вы продвигаетесь, можно использовать TDD для битов, которые Вы хотите осуществить рефакторинг.

Я знаю, что это, вероятно, не было ответом, который Вы хотите услышать, но я тестировал на многих, много лет, и это - серьезный подход (хотя я едва назвал бы его единственным подходом :)

3
ответ дан 3 December 2019 в 08:57
поделиться

Это интересно, но такие сгенерированные модульные тесты могут на самом деле быть полезными. Если Вы будете работать над унаследованным приложением, то будет часто трудно записать корректные, современные модульные тесты.

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

Теперь о генерации себя. Я не знаю ни о каком волшебном инструменте, но можно хотеть искать функциональность JUnit о включении некоторых тестов в javadocs для методов. Это позволило бы Вам писать некоторые простые тесты. И да, это на самом деле имеет некоторую ценность.

Во-вторых, можно просто записать "большие" тесты вручную. Конечно, они не были бы модульными тестами по сути (никакая изоляция, потенциальные побочные эффекты, и т.д.), но могли быть хорошим первым шагом. Особенно, если Вы имеете мало времени и унаследованное приложение.

Бонусная Подсказка! Существует превосходная книга, "Работающая эффективно с унаследованным кодом" с примерами в Java, включая право методов использовать в таких ситуациях. К сожалению, необходимо было бы сделать некоторые вещи вручную, но необходимо будет сделать это на некотором шаге так или иначе.

3
ответ дан 3 December 2019 в 08:57
поделиться
Другие вопросы по тегам:

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