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:

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:

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:

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:

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:

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:

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"