2013-05-30 1 views
2

Je suis aux prises avec un test de concordance.Concordion - Besoin de montrer un tas de données sans vérifier la valeur

Les concordances visent principalement à affirmer que la valeur des données est conforme aux attentes. Cependant, de temps en temps, vous devez afficher des données sur le code HTML qui est juste affiché (peut-être pour que le scénario de test soit plus lisible pour quelqu'un qui ne fait que lire le code HTML).

Dans mon cas, j'ai besoin d'interroger une table et d'afficher des données. Je n'ai pas besoin d'affirmer que les données ont une valeur particulière (ce qui se passe quelque part plus bas dans la concordion).

<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> 

Maintenant, cela fait le travail correct. Cependant, il y a un gotcha. Le code dans son format actuel attend un groupe de lignes. Par conséquent, il attend un tas de trtds pour montrer que les données. Donc, au fond, je dois fournir un tas de très vide (précisément le nombre de lignes que j'attends de la base de données.

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

Cela fonctionne. Mais Je n'ai pas été en mesure de trouver un moyen de faire le travail (c'est-à-dire de montrer une série de résultats dans des HTML de Concrodion) sans avoir besoin d'une longue liste de trtds vides

Si quelqu'un a rencontré le problème et/ou corrigé quelque chose comme ceci, s'il vous plaît signaler.

Répondre

0

Merci @mszalbach pour votre réponse. Je pense que tu as raison.

Cependant, je cherchais juste une solution rapide, qui ne semble pas moche. Cela ne me dérange pas vraiment d'être hacky et je ne me suis pas vraiment soucié de créer le code HTML dans mon code java quand je me débrouillais bien avec le HTML fourni par la concordion (à l'exception de la surbrillance rouge). J'ai donc pris l'approche qui prenait le moins d'effort (définitivement hacky mais ça marche) et ça n'a pas l'air trop mal (ça n'a pas besoin d'une longue liste de TRTDs vides).

J'ai piraté le css de concordion par défaut. :)

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

Collez cela en haut de votre code HTML et vous êtes prêt à partir.

Ne pas retirer de crédit à @mszalbach. Je pense que vous approchez est la «bonne» chose à faire. Le mien est juste la chose "correcte" à faire quand vous avez un délai imminent et vous avez juste besoin de la concordion pour regarder bien à moins que certaines assertions se brisent.

2

Vous pouvez essayer le embeded extension pour concordion

Vous ajouteriez

@Extensions(EmbedExtension.class) 

à votre classe et peut alors utiliser une méthode getSomeBunchOfDataFromDBFormatedAsHtml qui renvoie une chaîne avec le code html avec vos <td> s générés par une boucle et montrer ce tableau avec:

<span ext:embed="getSomeBunchOfDataFromDBFormatedAsHtml()"/> 
Questions connexes