2015-09-29 3 views
0

Итак, у меня есть этот класс, который я тестирую. Это помощник, который извлекает материал из некоторых классов XML. Классы XML - это своего рода «русская кукла», где вам нужно копать многие уровни, чтобы получить нужную вам вещь. Проблема в том, что тестируемый класс вызывает многие из его собственных методов. Это довольно сложно проверить без кучи избыточности. Это означает, что я не хочу повторять какие-либо из этих методов с низким уровнем висячих фруктов, которые извлекают объекты из мелких мест, если я могу избежать этого. Я чувствую запах возможности для повторного фактора здесь, но я не уверен, что это должно быть. Обратите внимание, что в нашей «русской кукле» часто есть 6 и 7 уровней. Моя интуиция говорит, что я должен, возможно, реорганизовать испытуемый класс на иерархию классов, примерно по одному на каждый уровень в нашей «русской кукле». Тогда, может быть, я смогу проверить один за раз без избыточности.Как проверить этот класс?

Вопросы: Какими шаблонами я должен смотреть на это? Есть ли подход для этого, который основан на композиции, а не наследовании?

+0

Думая об этом еще немного, я думаю, мне нужно проверить все методы и посмотреть, какие из них фактически используются снаружи. Те, которые не могут стать методами в проводном компоненте. – user447607

ответ

0

, не видя в классе его трудно дать вам совет, как его проверить. Я предполагаю, что вы говорите о классе java, не так ли? И вы используете структуру JAXB или аналогичную структуру привязки XML. Что касается этого, я бы сказал, что вы не хотите проверять правильность структуры, но вы хотите проверить, получаете ли вы «правильную вещь» из своей русской куклы. Я бы просто написал тест, который тестирует, если вы получите материал, который ищете, не тестируя методы между ними ... если они просто используют инфраструктуру привязки xml для разворачивания материала, а затем доверяют структуре. Если нет, вы также можете высмеять методы между ними. Затем вы также можете тестировать их один за другим без избыточности.

+0

JAXB. Да. Да, это класс Java. Я издевался над Object.getValue(). GetNextObject(). GetValue() ... вызывает. IDK, если путь важен, хотя. Это означает, что, возможно, есть два экземпляра одного и того же типа объектов в разных местах ... где разница является контекстуальной. Мне интересно, нет ли такого инструмента для подобных вещей в Apache. Например, вы можете указать путь, и он захватывает то, что вы хотите. – user447607

+0

По-прежнему трудно следить, не видя фактического кода ... посмотрите на http://stackoverflow.com/questions/17141154/unmarshalling-an-xml-using-xpath-expression-and-jaxb, возможно, это помогает. – MeBNoah

+1

https://commons.apache.org/proper/commons-jxpath/users-guide.html Я думаю, что это ответ на мою проблему. – user447607

Смежные вопросы