Добавьте метод тестирования к существующему контрольному примеру, выделив имя метода в Eclipse - PullRequest
3 голосов
/ 09 июня 2010

Не уверен, что это возможно, но это сэкономит мне много времени. Когда я создаю тестовый пример Junit4 в Eclise, я обычно не включаю все методы, которые я хотел бы сначала протестировать, а затем я хотел бы добавить непроверенные методы или новые методы в тестовый пример. В настоящее время я делаю это, вводя новые тестовые методы в существующий класс тестовых случаев. Могу ли я выделить имя метода и создать контрольный пример, если он еще не существует, или добавить его в существующий контрольный пример в Eclipse? Заранее спасибо!

David

Ответы [ 3 ]

2 голосов
/ 09 июня 2010

Нет. Но, честно говоря, в любом случае у вас не должно быть однозначного сопоставления тестов с методами. Я думаю, что вторая страница диалога Eclipse «Create JUnit TestCase» очень плохо спроектирована, поскольку создает впечатление, что сопоставление «один к одному» как-то полезно.

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

Что заставляет меня утверждать, что нужная вам функциональность не будет чрезвычайно полезной, потому что в любом случае вам нужно будет добавить гораздо больше методов тестирования!

1 голос
/ 24 ноября 2010

Создайте новый JUnit как обычно, но используйте другое имя для класса, скажем JavaClassTest2, затем скопируйте и вставьте сгенерированный метод.

Оффтопик:

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

  1. Список возможных тестовых сценариев на основе javadoc и ожиданий в виде сообщения об ошибке теста. Это служит индексом сценария, поэтому я легко могу вернуться к тому сценарию, который мог пропустить.
  2. Реализация теста для каждого сценария по абзацу после индексации шага 1 для имен переменных.

    @Test public void testRemoveHtmlTags() {
    String[] test = {
            "0. Null argument test failed.",
            "1. Case sensitive test failed.",
            "2. Case insensitive test failed." };
    
    
    try {
        StringUtils.removeHtmlTags(null);
        fail(test[0]);
    } catch (IllegalArgumentException iae) {}
    
    
    String input1 = "The quick Brown <b>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;";
    String output1 = StringUtils.removeHtmlTags(input1);
    assertEquals(test[1], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output1);
    
    
    String input2 = "The quick Brown <B>Fox</b> Jumps&nbsp;Over The Lazy Dog. &gt;&lt;";
    String output2 = StringUtils.removeHtmlTags(input2);
    assertEquals(test[2], "The quick Brown Fox Jumps Over The Lazy Dog. ><", output2);
    

    }

1 голос
/ 09 июня 2010

Не возможно.Кроме того, один метод не означает, что у вас есть только один тестовый сценарий.Как сказал @Danny, вам нужно будет создать несколько тестовых сценариев, чтобы протестировать все возможные полезные сценарии для этого одного метода.Если вы объедините все эти тестовые сценарии в один большой тестовый сценарий, то он не будет слишком полезным.Это связано с тем, что при сбое этого тестового сценария вам придется углубиться в тестовый набор, чтобы узнать, какой сценарий дает сбой, что является громоздким.есть много маленьких тестовых случаев, а не один большой тестовый случай.Когда это не удается, вы точно знаете, какой тестовый сценарий терпит неудачу.

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