
- Behave Tutorial
- Behave - Home
- Behave - Introduction
- Behave - Installation
- Behave - Command Line
- Behave - Configuration Files
- Behave - Feature Testing Setup
- Behave - Gherkin Keywords
- Behave - Feature Files
- Behave - Step Implementations
- Behave - First Steps
- Behave - Supported Languages
- Behave - Step Parameters
- Behave - Scenario Outlines
- Behave - Multiline Text
- Behave - Setup Table
- Behave - Steps in a Step
- Behave - Background
- Behave - Data Types
- Behave - Tags
- Behave - Enumeration
- Behave - Step Matchers
- Behave - Regular Expressions
- Behave - Optional Part
- Behave - Multi-Methods
- Behave - Step Functions
- Behave - Step Parameters
- Behave - Runner Script
- Behave - Exclude Tests
- Behave - Retry Mechanism
- Behave - Reports
- Behave - Hooks
- Behave - Debugging
- Behave Useful Resources
- Behave - Quick Guide
- Behave - Useful Resources
- Behave - Discussion
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Behave - Setup Table
A step can have a text and data table associated with it. We can add a data table with a step. It is recommended to have the table data indented and it is mandatory to have an equal column number for each line.
A column data should be separated by the | symbol.
Feature File with Table (Login.feature)
The feature file is as mentioned below −
Feature − User Information Scenario − Check login functionality Given Collection of credentials | username |password | | user1 | pwd1 | | user2 | pwd2 | Then user should be logged in
A table is accessible to the implementation Python code with the .table attribute within the context variable (passed in the step function). A table is an instance of Table. We can use the set up table to facilitate setting up the test.
Python code
The python code to access table.(login_module.py) is as follows −
class Deprt(object): def __init__(self, username, ms=None): if not ms: ms = [] self.username = username self.ms = ms def m_addition(self, usernane): assert usernane not in self.ms self.ms.append(usernane) class LModel(object): def __init__(self): self.loginusrs = []f self.passwords = {} def usr_addition(self, username, password): assert username not in self.loginusrs if password not in self.passwords: self.passwords[password] = Deprt(password) self.passwords[password].m_addition(username)
Corresponding Step Implementation File(step_implg.py)
The file is as follows −
from behave import * from features.steps.login_module import LModel @given('Collection of credentials') def step_impl(context): model = getattr(context, "model", None) if not model: context.model = LModel() #iterate rows of table for r in context.table: context.model.usr_addition(r["username"], password=r["password"]) @then('user should be logged in') def step_impl(context): pass
Project setup
The project set up for the file in Python project is as follows

Output
The output obtained after running the feature file is given below and the command used is behave --no-capture -f plain.

The output shows the step up table printed.