Изучение Mockito - PullRequest
       93

Изучение Mockito

0 голосов
/ 14 июля 2020

Я изучаю java и определяю лучший способ написания модульных тестов. У меня есть простая программа синтаксического анализа xml, в которой я ищу лучший способ написать тестовые примеры для класса SchemaValidator, используя JUnit и Mockito. Ниже представлен класс

public class SchemaValidator {

    private static final String SCHEMA_FILE = "/Schema.xsd";

    private File xml;

    public SchemaValidator(File xml) {
        this.xml = xml;
    }

    /**
     * Confirms if the schema is valid for the given xml file
     *
     * @return  {@code true} if schema is valid
     *          {@code false} otherwise
     */
    public boolean isValidSchema() {

        try {
            SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(new StreamSource(SchemaValidator.class.getResourceAsStream(SCHEMA_FILE)));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(xml));
        } catch (IOException | SAXException e) {
            System.out.println("Exception: " + e.getMessage());
            return false;
        }
        return true;
    }
}

Как я могу протестировать этот класс? Должен ли я использовать фиктивные файлы xml (с действительными и недопустимыми схемами) локально для проверки поведения валидатора или это должно быть возможно с помощью имитации? Какая лучшая практика? Был бы признателен, если бы объяснил это с примерами тестовых случаев для вышеуказанного.

1 Ответ

0 голосов
/ 14 июля 2020

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

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