Database Plugin — Step Reference
Autogenerated from
steps.yaml. Do not edit manually.
db.define.alias
Role: given
Selects a configured datasource alias for subsequent database operations.
Parameters
| Name | Type | Description |
|---|---|---|
alias |
text | The name of the datasource as defined in the configuration |
dsl
Expression: use db {alias:text}
Example:
* use db "main"
Scenarios:
Select a datasource before performing operations
* use db "main"
* count db table users = 3
en
Expression:
I use datasource {alias:text}
Example:
Given I use datasource "main"
Scenarios:
Select a datasource before performing operations
Given I use datasource "main"
Then the count of rows of table users is equal to 3
es
Expression:
uso el origen de datos {alias:text}
Example:
Dado que uso el origen de datos "main"
Scenarios:
Seleccionar un origen de datos antes de operar
Dado que uso el origen de datos "main"
Entonces el número de filas de la tabla users es igual a 3:
db.teardown.execute
Role: given
Registers a SQL statement to be executed at teardown, after the scenario finishes. This guarantees cleanup regardless of whether the scenario passed or failed. Multiple statements can be registered; they are executed in registration order.
Parameters
| Name | Type | Description |
|---|---|---|
alias |
text | The name of the datasource where the statement will be executed |
sql |
document | The SQL statement to execute at teardown, provided as a docstring block |
dsl
Expression:
db teardown {alias:text} query:
Example:
* db teardown "main" query:
"""sql
DELETE FROM users WHERE status = 'active'
"""
Scenarios:
Register cleanup SQL to run after the scenario regardless of outcome
* db teardown "main" query:
"""sql
DELETE FROM users WHERE status = 'active'
"""
en
Expression:
at teardown execute in datasource {alias:text} the SQL statement:
Example:
Given at teardown execute in datasource "main" the SQL statement:
"""sql
DELETE FROM users WHERE status = 'active'
"""
Scenarios:
Register cleanup SQL to run after the scenario regardless of outcome
Given at teardown execute in datasource "main" the SQL statement:
"""sql
DELETE FROM users WHERE status = 'active'
"""
es
Expression:
al finalizar se ejecutará en el origen de datos {alias:text} la sentencia SQL:
Example:
Dado que al finalizar se ejecutará en el origen de datos "main" la sentencia SQL:
"""sql
DELETE FROM users WHERE status = 'active'
"""
Scenarios:
Registrar una sentencia de limpieza para ejecutar al finalizar el escenario
Dado que al finalizar se ejecutará en el origen de datos "main" la sentencia SQL:
"""sql
DELETE FROM users WHERE status = 'active'
"""
db.execute.query
Role: given
Executes an arbitrary SQL statement and stores the result for subsequent steps. For SELECT queries, the result set is stored and can be asserted with db.assert.query.* steps. For INSERT, UPDATE or DELETE statements, the number of affected rows is stored instead.
Parameters
| Name | Type | Description |
|---|---|---|
sql |
document | The SQL statement to execute, provided as a docstring block |
dsl
Expression: db query:
Example:
* db query:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
Scenarios:
Execute a SELECT and assert the result in subsequent steps
* use db "main"
* db query:
"""sql
SELECT id, name FROM users WHERE status = 'active'
"""
* db query count > 0
en
Expression:
I execute the SQL query:
Example:
Given I execute the SQL query:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
Scenarios:
Execute a SELECT and assert the result in subsequent steps
Given I use datasource "main"
And I execute the SQL query:
"""sql
SELECT id, name FROM users WHERE status = 'active'
"""
Then the SQL result row count is greater than 0
es
Expression:
ejecuto la sentencia SQL:
Example:
Dado que ejecuto la sentencia SQL:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
Scenarios:
Ejecutar una SELECT y verificar el resultado en pasos posteriores
Dado que uso el origen de datos "main"
Y ejecuto la sentencia SQL:
"""sql
SELECT id, nombre FROM users WHERE status = 'active'
"""
Entonces el número de filas de la respuesta SQL es mayor que 0
db.store.query.result
Role: then
Stores the result of the last executed SQL statement in a named variable. For SELECT queries, stores the first field of the first row. For INSERT, UPDATE or DELETE statements, stores the number of affected rows.
Parameters
| Name | Type | Description |
|---|---|---|
variable |
text | The name of the variable where the value will be stored |
dsl
Expression:
db query result -> {variable:text}
Example:
* db query result -> "name"
Scenarios:
Store the first field of a SELECT result in a variable
* use db "main"
* db query:
"""sql
SELECT name FROM users WHERE status = 'active'
"""
* db query result -> "name"
en
Expression:
store db query result in variable {variable:text}
Example:
Then store db query result in variable "name"
Scenarios:
Store the first field of a SELECT result in a variable
Given I use datasource "main"
And I execute the SQL query:
"""sql
SELECT name FROM users WHERE status = 'active'
"""
Then store db query result in variable "name"
es
Expression:
guardo el resultado de la consulta SQL en la variable {variable:text}
Example:
Entonces guardo el resultado de la consulta SQL en la variable "nombre"
Scenarios:
Guardar el primer campo del resultado de una SELECT en una variable
Dado que uso el origen de datos "main"
Y ejecuto la sentencia SQL:
"""sql
SELECT nombre FROM users WHERE status = 'active'
"""
Entonces guardo el resultado de la consulta SQL en la variable "nombre"
db.assert.query.count
Role: then
Asserts the count resulting from the last executed SQL statement. For SELECT queries, asserts the number of rows in the result set. For INSERT, UPDATE or DELETE statements, asserts the number of affected rows.
Parameters
| Name | Type | Description |
|---|---|---|
integer-assertion |
assertion | A condition that the count must satisfy (e.g. '= 3', '> 0') |
dsl
Expression:
db query count {{integer-assertion}}
Assertion expressions:
= 0= 1> 0!= 0
Example:
* db query count > 0
Scenarios:
Assert the number of rows returned by the last SQL query
* use db "main"
* db query:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
* db query count > 0
en
Expression:
the SQL result row count {{integer-assertion}}
Assertion expressions:
is equal to 0is equal to 1is greater than 0is not equal to 0
Example:
Then the SQL result row count is greater than 0
Scenarios:
Assert the number of rows returned by the last SQL query
Given I use datasource "main"
And I execute the SQL query:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
Then the SQL result row count is greater than 0
es
Expression:
el número de filas de la respuesta SQL {{integer-assertion}}
Assertion expressions:
es igual a 0es igual a 1es mayor que 0no es igual a 0
Example:
Entonces el número de filas de la respuesta SQL es mayor que 0
Scenarios:
Verificar el número de filas devueltas por la última consulta SQL
Dado que uso el origen de datos "main"
Y ejecuto la sentencia SQL:
"""sql
SELECT * FROM users WHERE status = 'active'
"""
Entonces el número de filas de la respuesta SQL es mayor que 0
db.assert.count
Role: then
Asserts that the number of rows in the specified table satisfies the given condition.
Parameters
| Name | Type | Description |
|---|---|---|
table |
word | The name of the database table |
integer-assertion |
assertion | A condition that the row count must satisfy (e.g. '= 3', '> 0') |
dsl
Expression:
count db table {table:word} {{integer-assertion}}
Assertion expressions:
= 0= 1> 0!= 0
Example:
* count db table users = 3
Scenarios:
Assert table is empty after a deletion
* use db "main"
* count db table users = 0
Assert at least one row exists
* use db "main"
* count db table users > 0
en
Expression:
the count of rows of table {table:word} {{integer-assertion}}
Assertion expressions:
is equal to 0is equal to 1is greater than 0is not equal to 0
Example:
Then the count of rows of table users is equal to 3
Scenarios:
Assert table is empty after a deletion
Given I use datasource "main"
Then the count of rows of table users is equal to 0
Assert at least one row exists
Given I use datasource "main"
Then the count of rows of table users is greater than 0
es
Expression:
el número de filas de la tabla {table:word} {{integer-assertion}}
Assertion expressions:
es igual a 0es igual a 1es mayor que 0no es igual a 0
Example:
Entonces el número de filas de la tabla users es igual a 3
Scenarios:
Verificar que la tabla está vacía tras un borrado
Dado que uso el origen de datos "main"
Entonces el número de filas de la tabla users es igual a 0
Verificar que existe al menos una fila
Dado que uso el origen de datos "main"
Entonces el número de filas de la tabla users es mayor que 0
db.assert.table.contains
Role: then
Asserts that the contents of a database table contains the expected data provided in a tabular format.
Parameters
| Name | Type | Description |
|---|---|---|
table |
word | The name of the database table |
expected-data |
table | A table of expected rows, where each row is a map of column names to expected values. |
First row is treated as header defining column names. Values can
be literals or special placeholders (e.g.
dsl
Expression:
db table {table:word} has:
Example:
* db table users has:
| id | name |
| 1 | Alice |
Scenarios:
Assert exact table contents
* use db "main"
* db table users has:
| id | name |
| 1 | Alice |
Assert contents with null values
* use db "main"
* db table users has:
| id | name |
| 2 | <null> |
en
Expression:
the table {table:word} contains the rows:
Example:
Then the table users contains the rows:
| id | name |
| 1 | Alice |
Scenarios:
Assert exact table contents
Given I use datasource "main"
Then the table users contains the rows:
| id | name |
| 1 | Alice |
Assert contents with null values
Given I use datasource "main"
Then the table users contains the rows:
| id | name |
| 2 | <null> |
es
Expression:
la tabla {table:word} contiene las filas:
Example:
Entonces la tabla users contiene las filas:
| id | nombre |
| 1 | Alice |
Scenarios:
Verificar el contenido exacto de la tabla
Dado que uso el origen de datos "main"
Entonces la tabla users contiene las filas:
| id | nombre |
| 1 | Alice |
Verificar contenido con valores nulos
Dado que uso el origen de datos "main"
Entonces la tabla users contiene las filas:
| id | nombre |
| 2 | <null> |
db.assert.table.is
Role: then
Asserts that the contents of a database table match exactly the expected data provided in a tabular format. Both the number of rows and each individual row must match.
Parameters
| Name | Type | Description |
|---|---|---|
table |
word | The name of the database table |
expected-data |
table | A table of expected rows, where each row is a map of column names to expected values. |
First row is treated as header defining column names. Values can
be literals or special placeholders (e.g.
dsl
Expression:
db table {table:word} is:
Example:
* db table users is:
| id | name |
| 1 | Alice |
Scenarios:
Assert table has exactly these rows
* use db "main"
* db table users is:
| id | name |
| 1 | Alice |
Assert table is exactly one row with a null value
* use db "main"
* db table users is:
| id | name |
| 2 | <null> |
en
Expression:
the table {table:word} is exactly:
Example:
Then the table users is exactly:
| id | name |
| 1 | Alice |
Scenarios:
Assert table has exactly these rows
Given I use datasource "main"
Then the table users is exactly:
| id | name |
| 1 | Alice |
Assert table is exactly one row with a null value
Given I use datasource "main"
Then the table users is exactly:
| id | name |
| 2 | <null> |
es
Expression:
la tabla {table:word} es exactamente:
Example:
Entonces la tabla users es exactamente:
| id | nombre |
| 1 | Alice |
Scenarios:
Verificar que la tabla contiene exactamente estas filas
Dado que uso el origen de datos "main"
Entonces la tabla users es exactamente:
| id | nombre |
| 1 | Alice |
Verificar que la tabla tiene exactamente una fila con valor nulo
Dado que uso el origen de datos "main"
Entonces la tabla users es exactamente:
| id | nombre |
| 2 | <null> |
db.assert.table.contains.csv
Role: then
Asserts that the contents of a database table contains all rows from a CSV file. The first row of the CSV is treated as the header defining column names.
Parameters
| Name | Type | Description |
|---|---|---|
table |
word | The name of the database table |
file |
file | Path to the CSV file with the expected rows |
dsl
Expression:
db table {table:word} has CSV {file:file}
Example:
* db table users has CSV "expected/users.csv"
Scenarios:
Assert table contains rows from a CSV file
* use db "main"
* db table users has CSV "expected/users.csv"
en
Expression:
the table {table:word} contains the CSV file {file:file}
Example:
Then the table users contains the CSV file "expected/users.csv"
Scenarios:
Assert table contains rows from a CSV file
Given I use datasource "main"
Then the table users contains the CSV file "expected/users.csv"
es
Expression:
la tabla {table:word} contiene el fichero CSV {file:file}
Example:
Entonces la tabla users contiene el fichero CSV "expected/users.csv"
Scenarios:
Verificar que la tabla contiene las filas de un fichero CSV
Dado que uso el origen de datos "main"
Entonces la tabla users contiene el fichero CSV "expected/users.csv"
db.assert.table.is.csv
Role: then
Asserts that the contents of a database table match exactly the rows from a CSV file. Both the number of rows and each individual row must match. The first row of the CSV is treated as the header defining column names.
Parameters
| Name | Type | Description |
|---|---|---|
table |
word | The name of the database table |
file |
file | Path to the CSV file with the expected rows |
dsl
Expression:
db table {table:word} is CSV {file:file}
Example:
* db table users is CSV "expected/users.csv"
Scenarios:
Assert table matches exactly the rows in a CSV file
* use db "main"
* db table users is CSV "expected/users.csv"
en
Expression:
the table {table:word} is exactly the CSV file {file:file}
Example:
Then the table users is exactly the CSV file "expected/users.csv"
Scenarios:
Assert table matches exactly the rows in a CSV file
Given I use datasource "main"
Then the table users is exactly the CSV file "expected/users.csv"
es
Expression:
la tabla {table:word} es exactamente el fichero CSV {file:file}
Example:
Entonces la tabla users es exactamente el fichero CSV "expected/users.csv"
Scenarios:
Verificar que la tabla coincide exactamente con un fichero CSV
Dado que uso el origen de datos "main"
Entonces la tabla users es exactamente el fichero CSV "expected/users.csv"
db.assert.contains.xls
Role: then
Asserts that the database contains the rows from an Excel file. Each sheet in the Excel file is treated as a table, using the sheet name as the table name. The first row of each sheet is treated as the header defining column names.
Parameters
| Name | Type | Description |
|---|---|---|
file |
file | Path to the Excel file with the expected data (one sheet per table) |
dsl
Expression:
db has XLS {file:file}
Example:
* db has XLS "expected/data.xlsx"
Scenarios:
Assert multiple tables contain the rows from an Excel file
* use db "main"
* db has XLS "expected/data.xlsx"
en
Expression:
the database contains the rows from Excel file {file:file}
Example:
Then the database contains the rows from Excel file "expected/data.xlsx"
Scenarios:
Assert multiple tables contain the rows from an Excel file
Given I use datasource "main"
Then the database contains the rows from Excel file "expected/data.xlsx"
es
Expression:
la base de datos contiene las filas del fichero Excel {file:file}
Example:
Entonces la base de datos contiene las filas del fichero Excel "expected/data.xlsx"
Scenarios:
Verificar que varias tablas contienen las filas de un fichero Excel
Dado que uso el origen de datos "main"
Entonces la base de datos contiene las filas del fichero Excel "expected/data.xlsx"