Тестовые шаблоны Javolution, что нужно и что нельзя делать - PullRequest
2 голосов
/ 11 декабря 2008

Каковы шаблоны, а также что нужно и чего нельзя делать, когда пишется тест для Javolution тестов? В частности мне было интересно:

  • TestCase.execute () не позволяет выбрасывать исключения. Как с ними бороться? Повторите как RuntimeException или сохраните в переменной и подтвердите в TestCase.validate () или что-то еще?
  • Существуют ли графические бегуны, которые показывают вам неудачные тесты, то есть в Eclipse? Возможно, кто-то написал JUnit-Wrapper таким образом, чтобы я мог использовать Eclipse JUnit Runner?

Ответы [ 2 ]

1 голос
/ 22 декабря 2008

В источниках Javadoc и Javolution приведены некоторые примеры и обоснование дизайна. Смотрите также статью о серверной части .

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

Недостатками этого разделения является то, что вы получите больше потребления памяти, поскольку результаты выполнения использованного кода необходимо сохранять до вызова validate (). (Освобождение этих результатов в tearDown, вероятно, является хорошей идеей.) И если проверка происходит из другого класса, чем упражнение, то может быть трудно отладить ошибку.

0 голосов
/ 22 декабря 2008

Вы можете получить какой-нибудь графический тестер, используя следующий адаптер JUnit и запустив его в eclipse. Вы можете запустить / отладить неудачные тесты отдельно. К сожалению, графическое представление не содержит ничего о реальном тесте - оно просто показывает цифры [0], [1] и т. Д.

@ RunWith (Parameterized.class) открытый класс JavolutionJUnit4Adapter {

protected final javolution.testing.TestCase test;

public JavolutionJUnit4Adapter(javolution.testing.TestCase testcase) {
    this.test = testcase;
}

@org.junit.Test
public void executeTest() throws Exception {
    enter(REGRESSION);
    try {
        new javolution.testing.TestSuite() {
            @Override
            public void run() {
                test(test);
            }
        }.run();
    } finally {
        exit();
    }
}

@Parameters
public static Collection<javolution.testing.TestCase[]> data() {
    javolution.testing.TestSuite fp = new WhateverSuiteYouWantToRun();
    List<javolution.testing.TestCase> tests = fp.getTestCases();
    Collection<javolution.testing.TestCase[]> res = new ArrayList<javolution.testing.TestCase[]>();
    for (javolution.testing.TestCase t : tests) {
        res.add(new javolution.testing.TestCase[] { t });
    }
    return res;
}

}

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