Пример тестового примера Junit для кода синтаксического анализа - PullRequest
0 голосов
/ 20 января 2020

Я написал код синтаксического анализатора Sax в java. У меня есть два класса, один класс обработчика, который фактически выполняет синтаксический анализ и расширяет класс обработчика по умолчанию для синтаксического анализатора Sax. Другой класс - это класс синтаксического анализатора, который устанавливает свойства и особенности синтаксического анализатора саксофона, устанавливает обработчик, устанавливает класс исключений и классифицирует метод синтаксического анализа. Я хочу написать тестовый класс Junit для этого метода. Кто-нибудь может мне помочь с ресурсом о том, как мне написать для этого тестовый пример Junit?

Я могу поделиться своим кодом, но я думаю, что я объяснил это, так что если вы могли бы помочь мне с примером из теста Junit случай

Ответы [ 2 ]

1 голос
/ 20 января 2020

Рассмотрим тестирование контракта вашей библиотеки. По сути, синтаксический анализ SAX должен позволять анализировать XML с различными вариантами (управляется конфигурациями). Таким образом, шаблон теста может быть:


public class ParserTest {

    @Test
    public void testParse() {
        // given:
        SaxParser underTest = createParser(); // create with configurations

        // when:
        actualResult = underTest.parseXml(<XML_FILE_GOES_HERE>);

        // then:
        assertThat(actualResult, matchesContent());
     } 
}

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

Вы можете рассматривать 2 класса (анализатор и конфигурацию) как один компонент и написать модульный тест, который охватит их оба. Так что в этом случае нет необходимости в mockito (который вы указали в тегах вопроса).

Кроме того, вы можете рассматривать конфигурацию как отдельный компонент и проверять, что она выдает правильную конфигурацию, снова тестировать на поведение контракт.

Относительно утверждений XML. Вы можете найти полезную xml библиотеку единиц

0 голосов
/ 20 января 2020

используйте методы assertXXX для проверки значений в выходном объекте, используйте @Expected для сценария исключения ios.

Для примера ссылки, которую вы упомянули здесь, мы можем проверить размер массива в assertEquals, а также assertTrue для списка не должен быть пустым. В дополнение к этому мы можем проверить assertEquals для содержимого в элементах arrayList Надеюсь, этого хватит !!

...