Outline Background
- Find mountain outline stock images in HD and millions of other royalty-free stock photos, illustrations and vectors in the Shutterstock collection. Thousands of new, high-quality pictures added every day.
- Download 511 Outline Fonts. 1001 Free Fonts offers the best selection of Outline Fonts for Windows and Macintosh.
Unlike border, the outline is drawn outside the element's border, and may overlap other content. Also, the outline is NOT a part of the element's dimensions; the element's total width and height is not affected by the width of the outline. 1 day ago What is a background in an outline? After the initial introduction, background on your topic often follows. This paragraph or section might include a literature review surveying the current state of knowledge on your topic or simply a historical overview of relevant information. Remove background in almost no time. Being equipped with sophisticated AI technologies, Removal.AI is a fully automated background remover, you can now remove the background in just a few seconds. Automatically detect objects. Clear & Smooth cutout edges. Capable of handling hair or any other fur edges. Try Our Free Background Remover.
Jan Steen
Merry Company on a Terrace
Ca. 1670
Metropolitan Museum of Art
Attributed to the Master of the Martyrdom of St. Sebastian
Hercules and Achelous
Approx. mid-17th century
Metropolitan Museum of Art
Jean Cornu
Venus Giving Arms to Aeneas
1704
Metropolitan Museum of Art

Domenichino
The Lamentation
1603
Metropolitan Museum of Art
Adriaen Brouwer
The Smokers
Ca. 1636
Metropolitan Museum of Art
Something that is noteworthy within all the artworks above is the exaggerations of the postures and facials expressions of the subjects used to covey drama and strong emotions within the viewer. The way the subjects are “moving” in the works makes for well-intended illustration of theatrical drama. In addition, the use of the contrast of light and dark color brings attention to the certain parts or characters. These key components are most prominent in the chosen artworks as well as the majority of Baroque art.
Gherkin uses a set of special keywords to give structure and meaning toexecutable specifications. Each keyword is translated to many spoken languages;in this reference we’ll use English.
Most lines in a Gherkin document start with one of the keywords.

Comments are only permitted at the start of a new line, anywhere in the feature file. They begin with zero or more spaces,followed by a hash sign (#
) and some text.

Block comments are currently not supported by Gherkin.
Either spaces or tabs may be used for indentation. The recommended indentationlevel is two spaces. Here is an example:
The trailing portion (after the keyword) of each step is matched toa code block, called a step definition.
Each line that isn’t a blank line has to start with a Gherkin keyword, followed by any text you like. The only exceptions are the feature and scenario descriptions.
The primary keywords are:
Rule
(as of Gherkin 6)Example
(orScenario
)Given
,When
,Then
,And
,But
for steps (or*
)Scenario Outline
(orScenario Template
)Examples
(orScenarios
)
There are a few secondary keywords as well:
''
(Doc Strings)(Data Tables)
@
(Tags)#
(Comments)
Feature
The purpose of the Feature
keyword is to provide a high-level descriptionof a software feature, and to group related scenarios.
The first primary keyword in a Gherkin document must always be Feature
, followedby a :
and a short text that describes the feature.
You can add free-form text underneath Feature
to add more description.
These description lines are ignored by Cucumber at runtime, but are available for reporting (they are included by reporting tools like the official HTML formatter).
The name and the optional description have no special meaning to Cucumber. Their purpose is to providea place for you to document important aspects of the feature, such as a brief explanationand a list of business rules (general acceptance criteria).
Raya Dragon Outline Background
The free format description for Feature
ends when you start a line with the keyword Background
, Rule
, Example
or Scenario Outline
(or their alias keywords).
You can place tags above Feature
to group related features,independent of your file and directory structure.
Descriptions
Free-form descriptions (as described above for Feature
) can also be placed underneathExample
/Scenario
, Background
, Scenario Outline
and Rule
.
You can write anything you like, as long as no line starts with a keyword.
Descriptions can be in the form of Markdown - formatters including the official HTML formatter support this.
Rule
The (optional) Rule
keyword has been part of Gherkin since v6.
The purpose of the Rule
keyword is to represent one business rule that should be implemented.It provides additional information for a feature.A Rule
is used to group together several scenariosthat belong to this business rule. A Rule
should contain one or more scenarios that illustrate the particular rule.
For example:
Example
This is a concrete example that illustrates a business rule. It consists ofa list of steps.
The keyword Scenario
is a synonym of the keyword Example
.
You can have as many steps as you like, but we recommend 3-5 steps per example. Having too many steps will cause the example to lose its expressive power as a specification and documentation.
In addition to being a specification and documentation, an example is also a test. As a whole, your examples are anexecutable specification of the system.
Examples follow this same pattern:
- Describe an initial context (
Given
steps) - Describe an event (
When
steps) - Describe an expected outcome (
Then
steps)
Steps
Each step starts with Given
, When
, Then
, And
, or But
.
Cucumber executes each step in a scenario one at a time, in the sequence you’ve written them in.When Cucumber tries to execute a step, it looks for a matching step definition to execute.
Keywords are not taken into account when looking for a step definition. This means you cannot have aGiven
, When
, Then
, And
or But
step with the same text as another step.
Cucumber considers the following steps duplicates:
This might seem like a limitation, but it forces you to come up with a less ambiguous, more cleardomain language:
Given
Given
steps are used to describe the initial context of the system - the scene of the scenario.It is typically something that happened in the past.
When Cucumber executes a Given
step, it will configure the system to be in a well-defined state,such as creating and configuring objects or adding data to a test database.
The purpose of Given
steps is to put the system in a known state before the user (or external system) starts interacting with the system (in the When
steps).Avoid talking about user interaction in Given
’s. If you were creating use cases, Given
’s would be your preconditions.
It’s okay to have several Given
steps (use And
or But
for number 2 and upwards to make it more readable).
Examples:
- Mickey and Minnie have started a game
- I am logged in
- Joe has a balance of £42
When
When
steps are used to describe an event, or an action. This can be a person interacting with the system, or it can be an event triggered by another system.
It’s strongly recommended you only have a single When
step per Scenario. If you feel compelled to add more, it’s usually a sign that you should split the scenario up into multiple scenarios.
Examples:
- Guess a word
- Invite a friend
- Withdraw money
Then
Then
steps are used to describe an expected outcome, or result.
The step definition of a Then
step should use an assertion tocompare the actual outcome (what the system actually does) to the expected outcome(what the step says the system is supposed to do).
Outline Background Font
An outcome should be on an observable output. That is, something that comes out of the system (report, user interface, message), and not a behaviour deeply buried inside the system (like a record in a database).
Examples:
- See that the guessed word was wrong
- Receive an invitation
- Card should be swallowed
While it might be tempting to implement Then
steps to look in the database - resist that temptation!
You should only verify an outcome that is observable for the user (or external system), and changes to a database are usually not.
And, But
If you have successive Given
’s, When
’s, or Then
’s, you could write:
Or, you could make the example more fluidly structured by replacing the successive Given
’s, When
’s, or Then
’s with And
’s and But
’s:
*
Gherkin also supports using an asterisk (*
) in place of any of the normal step keywords. This can be helpful when you have some steps that are effectively a list of things, so you can express it more like bullet points where otherwise the natural language of And
etc might not read so elegantly.
For example:
Could be expressed as:
Background
Occasionally you’ll find yourself repeating the same Given
steps in all of the scenarios in a Feature
.
Since it is repeated in every scenario, this is an indication that those stepsare not essential to describe the scenarios; they are incidental details. You can literally move such Given
steps to the background, by grouping them under a Background
section.
A Background
allows you to add some context to the scenarios that follow it. It can contain one or more Given
steps, which are run before each scenario, but after any Before hooks.
A Background
is placed before the first Scenario
/Example
, at the same level of indentation.
For example:
Background
is also supported at the Rule
level, for example:
You can only have one set of Background
steps per Feature
or Rule
. If you need different Background
steps for different scenarios, consider breaking up your set of scenarios into more Rule
s or more Feature
s.
For a less explicit alternative to Background
, check out conditional hooks.
Tips for using Background
- Don’t use
Background
to set up complicated states, unless that state is actually something the client needs to know.- For example, if the user and site names don’t matter to the client, use a higher-level step such as
Given I am logged in as a site owner
.
- For example, if the user and site names don’t matter to the client, use a higher-level step such as
- Keep your
Background
section short.- The client needs to actually remember this stuff when reading the scenarios. If the
Background
is more than 4 lines long, consider moving some of the irrelevant details into higher-level steps.
- The client needs to actually remember this stuff when reading the scenarios. If the
- Make your
Background
section vivid.- Use colourful names, and try to tell a story. The human brain keeps track of stories much better than it keeps track of names like
'User A'
,'User B'
,'Site 1'
, and so on.
- Use colourful names, and try to tell a story. The human brain keeps track of stories much better than it keeps track of names like
- Keep your scenarios short, and don’t have too many.
- If the
Background
section has scrolled off the screen, the reader no longer has a full overview of what’s happening.Think about using higher-level steps, or splitting the*.feature
file.
- If the
Scenario Outline
The Scenario Outline
keyword can be used to run the same Scenario
multiple times,with different combinations of values.
The keyword Scenario Template
is a synonym of the keyword Scenario Outline
.
Copying and pasting scenarios to use different values quickly becomes tedious and repetitive:
We can collapse these two similar scenarios into a Scenario Outline
.
Scenario outlines allow us to more concisely express these scenarios through the useof a template with < >
-delimited parameters:
Examples
A Scenario Outline
must contain an Examples
(or Scenarios
) section. Its steps are interpreted as a templatewhich is never directly run. Instead, the Scenario Outline
is run once for each row inthe Examples
section beneath it (not counting the first header row).
The steps can use <>
delimited parameters that reference headers in the examples table.Cucumber will replace these parameters with values from the table before it triesto match the step against a step definition.
You can also use parameters in multiline step arguments.
In some cases you might want to pass more data to a step than fits on a single line.For this purpose Gherkin has Doc Strings
and Data Tables
.
Doc Strings
Doc Strings
are handy for passing a larger piece of text to a step definition.
The text should be offset by delimiters consisting of three double-quote marks on lines of their own:
In your step definition, there’s no need to find this text and match it in your pattern.It will automatically be passed as the last argument in the step definition.
Indentation of the opening ''
is unimportant, although common practice is two spaces in from the enclosing step.The indentation inside the triple quotes, however, is significant. Each line of the Doc String will be dedented according to the opening ''
. Indentation beyond the column of the opening ''
will therefore be preserved.
Doc strings also support using three backticks as the delimiter:
This might be familiar for those used to writing with Markdown.
Data Tables
Data Tables
are handy for passing a list of values to a step definition:
Just like Doc Strings
, Data Tables
will be passed to the step definition as the last argument.
Cucumber provides a rich API for manipulating tables from within step definitions.See the Data Table API reference reference formore details.
The language you choose for Gherkin should be the same language your users anddomain experts use when they talk about the domain. Translating betweentwo languages should be avoided.
This is why Gherkin has been translated to over 70 languages .
Here is a Gherkin scenario written in Norwegian:
A # language:
header on the first line of a feature file tells Cucumber whatspoken language to use - for example # language: fr
for French.If you omit this header, Cucumber will default to English (en
).
Some Cucumber implementations also let you set the default language in theconfiguration, so you don’t need to place the # language
header in every file.