Concordion - нужно показать кучу данных без проверки значения

Я борюсь с тестом на соответствие.

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

В моем случае мне нужно запросить таблицу и показать некоторые данные. Мне НЕ нужно утверждать, что данные представляют собой какую-то конкретную ценность (это происходит где-то еще ниже).

<table concordion:verifyRows="#aCollection : getSomeBunchOfDataFromDB()">
        <tr>
            <th concordion:echo="#aCollection.firstRow">1st</th>
            <th concordion:echo="#aCollection.secondRow">2nd</th>
            <th concordion:echo="#aCollection.thirdRow">3rd</th>
            <th concordion:echo="#aCollection.fourthRow">4th</th>
        </tr>

Теперь это делает работу хорошо. Однако есть одна ошибка. Код в его текущем формате ожидает кучу строк. Следовательно, он ожидает, что куча trtds покажет эти данные. Итак, в основном я должен предоставить кучу пустых trs (именно то количество строк, которое я ожидаю от базы данных.

            <tr>
            <td />
            <td />
            <td />
            <td />
        </tr>
        <tr>
            <td />
            <td />
            <td />
            <td />
        </tr>

Это работает. Но, конечно, это хакерство. Мне не удалось найти какой-либо способ выполнить работу (например, показать набор результатов в HTML-кодах Concrodion), не нуждаясь в длинном списке пустых trtds.

Если кто-то сталкивался с проблемой и / или исправил что-то подобное, пожалуйста, напишите обратно.

2 ответа

Решение

Спасибо @mszalbach за ваш ответ. Я думаю, вы правы.

Тем не менее, я просто искал быстрое решение, которое не выглядит уродливо. Я не возражаю против того, чтобы это было по-настоящему хакерски, и я не особо заботился о создании HTML в своем java-коде, когда мне было хорошо с HTML, который предоставлял concordion (за исключением красной подсветки). Поэтому я выбрал подход, который потребовал наименьших усилий (определенно хакерский, но он работает) и который не выглядит слишком плохо (ему не нужен длинный список пустых TRTD).

Я угнал стандартную css-версию согласия.:)

<style>
.surplus,.surplus * {
    background-color: white;
}
</style>

Поместите это наверху своего HTML, и все готово.

Не забирать кредит у @mszalbach. Я думаю, что ваш подход - это "правильная" вещь. Мой - это просто "правильная" вещь, которую нужно делать, когда у вас надвигающийся крайний срок, и вам просто нужно согласие, чтобы выглядеть хорошо, если некоторые утверждения не нарушаются.

Вы можете попробовать встроенное расширение для согласия.

Так что вы бы добавили

@Extensions(EmbedExtension.class)

Для вашего класса, а затем можете использовать метод getSomeBunchOfDataFromDBFormatedAsHtml который возвращает строку с HTML-кодом с вашим <td> s генерируется циклом и показывает эту таблицу с:

<span ext:embed="getSomeBunchOfDataFromDBFormatedAsHtml()"/>
Другие вопросы по тегам