2

我正在努力处理协和测试用例。

Concordions 的主要目的是断言数据的价值符合预期。但是,每隔一段时间,您就需要在 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>

这行得通。但这当然是hacky。我一直无法找到某种方法来完成工作(即在 Concrodion HTML 中显示一堆结果集)而不需要一长串空 trtds。

如果有人遇到过这个问题和/或解决了这样的问题,请回帖。

4

2 回答 2

2

您可以尝试使用 concordion 的嵌入式扩展

所以你会添加

@Extensions(EmbedExtension.class)

到您的班级,然后可以使用一种方法,该方法getSomeBunchOfDataFromDBFormatedAsHtml返回带有 html 代码的字符串,您<td>的 s 由循环生成,并显示此表:

<span ext:embed="getSomeBunchOfDataFromDBFormatedAsHtml()"/>
于 2013-05-30T19:29:35.200 回答
0

感谢@mszalbach 的回答。我想你是对的。

但是,我只是在寻找一个快速修复,它看起来并不难看。我不介意它真的很老套,当我对 concordion 提供的 HTML 很好(红色突出显示除外)时,我并不真正关心在我的 java 代码中创建 HTML。所以我采用了最省力的方法(绝对是hacky但它​​有效)并且看起来不太糟糕(它不需要一长串空的TRTD)。

我劫持了 concordion 的默认 css。:)

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

把它贴在 HTML 的顶部,你就可以开始了。

不要从@mszalbach 拿走任何功劳。我认为您的做法是“正确”的做法。当你有一个迫在眉睫的最后期限时,我的只是“正确”的事情,除非某些断言被打破,否则你只需要协和看起来还不错。

于 2013-05-31T16:59:37.267 回答