Executing Tables

The execute command has special behaviour when placed on a <table> element. Instead of executing once, it executes every detail row in the table and transfers the commands from the header row to each detail row.

Example

<table concordion:execute="#username = generateUsername(#fullName)">
    <tr>
        <th concordion:set="#fullName">Full Name</th>
        <th concordion:assertEquals="#username">Username</th>
    </tr>
    <tr>
        <td>Fred Bloggs</td>
        <td>fredbloggs</td>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>johndoe</td>
    </tr>
    <tr>
        <td>Winston Churchill</td>
        <td>winston</td>
    </tr>
</table>

If the method generateUsername() returns the full name in lowercase with spaces removed, when we run the test we expect: 2 successes and 1 failure and 0 exceptions to be reported. The failure will have an expected value of "winston" and an actual value of "winstonchurchill".

Further Details