Squish/Iterating Through a Table/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Un-nominate for deletion: Page is no longer a category)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
this page in: [[Category:Tools::Squish::Iterating_through_a_table|English]]
{{LangSwitch}}


[[Category:Tools::Squish]] [[Category:Spanish]]
[[Category:Squish]]
[[Category:Spanish]]


= Iterando a través de una tabla =
= Iterando a través de una tabla =
Line 7: Line 8:
Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.
Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.


Al final, el uso de cualquiera de estos tres enfoques sería simplemente:<br /><code>verifyNoEmptyCells(":MyQTableWidget")<code>
Al final, el uso de cualquiera de estos tres enfoques sería simplemente:
<code>verifyNoEmptyCells(":MyQTableWidget")<code>


== Usando la API de Qt ==
== Usando la API de Qt ==
Line 13: Line 15:
Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.
Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.


</code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> model = table.model()<br /> columnCount = model.columnCount()<br /> rowCount = model.rowCount()
</code>def verifyNoEmptyCells(tableName):
table = waitForObject(tableName)
model = table.model()
columnCount = model.columnCount()
rowCount = model.rowCount()


for col in range(columnCount):<br /> for row in range(rowCount):<br /> itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())<br /> test.verify(itemText != "")<code>
for col in range(columnCount):
for row in range(rowCount):
itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())
test.verify(itemText != "")<code>


== Usando waitForObjectItem() ==
== Usando waitForObjectItem() ==
Line 21: Line 30:
Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.
Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.


</code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> columnCount = table.columnCount<br /> rowCount = table.rowCount
</code>def verifyNoEmptyCells(tableName):
table = waitForObject(tableName)
columnCount = table.columnCount
rowCount = table.rowCount


for col in range(columnCount):<br /> for row in range(rowCount):<br /> item = waitForObjectItem(tableName, str(row)+"/"''str(col))<br /> test.verify(item.text != "")<code>
for col in range(columnCount):
<br />h2. Usando nombres reales
for row in range(rowCount):
<br />Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
item = waitForObjectItem(tableName, str(row)+"/"''str(col))
<br />Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
test.verify(item.text != "")<code>
<br /></code>def verifyNoEmptyCells(tableName):<br /> waitFor("object.exists(tableName)")<br /> columnCount = findObject(tableName).columnCount<br /> rowCount = findObject(tableName).rowCount
 
<br /> for col in range(columnCount):<br /> for row in range(rowCount):<br /> item = waitForObject("{column='"'' str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")<br /> test.verify(item.text != "")<code>
== Usando nombres reales ==
Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
 
Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
 
</code>def verifyNoEmptyCells(tableName):
waitFor("object.exists(tableName)")
columnCount = findObject(tableName).columnCount
rowCount = findObject(tableName).rowCount
 
for col in range(columnCount):
for row in range(rowCount):
item = waitForObject("{column='"'' str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")
test.verify(item.text != "")<code>

Latest revision as of 08:41, 8 December 2018

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Iterando a través de una tabla

Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.

Al final, el uso de cualquiera de estos tres enfoques sería simplemente:

verifyNoEmptyCells(":MyQTableWidget")<code>

== Usando la API de Qt ==

Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.

def verifyNoEmptyCells(tableName):

table = waitForObject(tableName)
model = table.model()
columnCount = model.columnCount()
rowCount = model.rowCount()

for col in range(columnCount):

for row in range(rowCount):
itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())

test.verify(itemText != "")

== Usando waitForObjectItem() ==

Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.

def verifyNoEmptyCells(tableName):

table = waitForObject(tableName)
columnCount = table.columnCount
rowCount = table.rowCount

for col in range(columnCount):

for row in range(rowCount):
item = waitForObjectItem(tableName, str(row)+"/"str(col))

test.verify(item.text != "")

== Usando nombres reales ==
Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.

Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.

def verifyNoEmptyCells(tableName):

waitFor("object.exists(tableName)")
columnCount = findObject(tableName).columnCount
rowCount = findObject(tableName).rowCount
for col in range(columnCount):
for row in range(rowCount):
item = waitForObject("{column='" str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")
test.verify(item.text != "")