发上等愿,结中等缘,享下等福;择高处立,寻平处住,向宽处行

Brick walls are there for a reason :they let us prove how badly we want things

代码改变世界

BDD中数据的类型及处理方法(python)

2015-10-27 11:13  kowme  阅读(516)  评论(0编辑  收藏  举报

BDD中提供了两种数据类型,table和text,以下是数据的文档介绍,最后有我的两个小例子。

1、class behave.model.Table(headings, line=None, rows=None)

A table extracted from a feature file.

Table instance data is accessible using a number of methods:

iteration

Iterating over the Table will yield the Row instances from the .rows attribute.

indexed access

Individual rows may be accessed directly by index on the Table instance; table[0] gives the first non-heading row and table[-1] gives the last row.

The attributes are:

headings

The headings of the table as a list of strings.

rows

An list of instances of Row that make up the body of the table in the feature file.

Tables are also comparable, for what that’s worth. Headings and row data are compared.

2、class behave.model.Row(headings, cells, line=None, comments=None)

One row of a table parsed from a feature file.

Row data is accessible using a number of methods:

iteration

Iterating over the Row will yield the individual cells as strings.

named access

Individual cells may be accessed by heading name; row[‘name’] would give the cell value for the column with heading “name”.

indexed access

Individual cells may be accessed directly by index on the Row instance; row[0] gives the first cell and row[-1] gives the last cell.

The attributes are:

cells

The list of strings that form the cells of this row.

headings

The headings of the table as a list of strings.

Rows are also comparable, for what that’s worth. Only the cells are compared.

And Text may be associated with Steps:

3、class behave.model.Text

Store multiline text from a Step definition.

The attributes are:

value

The actual text parsed from the feature file.

content_type

Currently only ‘text/plain’.

 

 

例子:

1、table

json_data = []

for row in context.table:

         adict = {}

         if hasattr(row, 'name'):

                  adict['name'] = row['name']

         json_data.append(adict)

 

 

2、text

expected_datas = json.loads(context.text)

It's not who you are underneath, it's what you do that defines you

Brick walls are there for a reason :they let us prove how badly we want things