#language: <value>
defines the document's language, where <value>
is an available language such as en
(English) or pt
(Portuguese).#locale: <value>
defines document's locale, where <value>
is an available local such as en-US
(USA English) or pt-BR
(Brazilian Portuguese). NOT AVAILABLE YET.@
. Multiple tags can be declared in a single line. Examples:@importance( <number> )
: indicates the importance of a declaration. The importance is as high as its number.@generate-only-valid-values
: avoids that a UI Element's property be used for generating values considered invalid. This is specially useful for using with masked input fields, in which the system does not let a user to type invalid characters on it. For instance:@global
makes a UI Element globally accessible. Global UI Elements must not have the same name. Local UI Elements (the default) overrides global UI Elements.@extends( <name> )
@critical
may indicate that the current feature is critical for the project;@issue(20)
may indicate that a feature (or scenario or variant) is being implemented in the Issue 20 from the Issue control system.Desired behavior of a software system
In the above example the benefit to the business is to prevent unauthorized access.
<role>
is usually a type of user or stakeholder. A <capability>
is what the role wants to perform in order to achieve the <benefit>
, which often is the contribution to the business.A certain state of the system
~
), such as ~a state~
, and must be written inside Variant sentences. Example:Then
sentence, like in the prior example. A State is required by a Given
or a When
sentence. For instance:Then
) sentences with a produced State; andGiven
or When
) sentences with a required State by sentences from the Variant that can produce it.my-account.testcase
with a Test Case like the following, that includes sentences from both the features:High-level, business-focused, usage scenario of a Feature.
Test-oriented declaration that describes a possible interaction between a user and the system in order to accomplish a Scenario.
I
") in its sentences. Concordia Compiler uses Natural Language Processing (NLP) techniques to understand them. "[email protected]"
123
Given
sentences.When
sentences.Then
sentences.Given
, a single When
and a single Then
sentence. Useand
for the other sentences.and
in the middle of a sentence (break it, instead).and
sentences.<
and >
. Example: #
When I click on <#save>
.
When I click on <.btn-primary>
@
When I click on <@save>
~
When I click on <~save>
When I click on <button>
Variant
sentences. Using it may reduce the time needed to locate the widgets of an existing application. Declaration block with constant values
Constants
block can define one or more constants, preceded by a dash sign (-
). Both constant names and values are declared between quotes, except for numeric values - that can be declared without quotes. Example:[
and ]
. Examples for the constants above:Defines a data table that can be used by UI Elements' properties.
|
). The first row must provide the column names. Other rows must provide the corresponding data. Example:[
and ]
. Example:Declares a database connection that can be used for test data selection
"
).type
"adodb"
, "csv"
, "firebase"
, "ini"
, "json"
, "mysql"
, "mssql"
, "postgres"
, "sqlite"
, "xlsx"
. See Using Databases for all supported types.host
port
type
.name
host
) and the database is accessible by its name.path
csv
, ini
, json
, sqlite
and xlsx
.username
type
.password
type
.options
Imports declarations from a.feature
file