未知

bdd的Python项目详细描述


简介

用于将BDD功能转换为python unittest.testcase类的库。运行 使用您最喜欢的测试运行器进行测试,如pytest、unittest或nose。 请参阅demo文件夹以获取示例。

示例

我们以计算器为例。 创建一个名为calculator.feature的纯文本文件,其中包含BDD样式 功能描述:

Feature: Basic math operations
 Test addition

Scenario: add
 Given the value 10
 When adding 7
 Then the result is 17

Scenario: add a negative value
 Given the value 19
 When adding -11
 Then the result is 8

这是您可以与客户讨论并达成一致的文本。 接下来编写一个名为test_calculator.py的备份文件,其中包含 运行此功能:

import os
from bdd import Environment
from calculator import Calculator

env = Environment()
env.context.calculator = Calculator()

@env.given('the value {:d}')
def step(context, value):
    context.calculator.value = value

@env.when('adding {:d}')
def step(context, value):
    context.calculator.add(value)

@env.then('the result is {:d}')
def step(context, value):
    assert context.calculator.value == value

def rel(p):
    this_dir = os.path.dirname(os.path.abspath(__file__))
    return os.path.join(this_dir, p)

CalculatorTestCase = env.load_feature_as_testcase('calculator.feature')

最后,编写实际的生产代码来实现计算器,在 名为calculator.py的文件:

class Calculator:
    def __init__(self):
        self.value = 0

    def add(self, value):
        self.value += value

现在使用pytest:

$ python -m pytest test_calculator.py -v
=========== test session starts ===========================
platform linux -- Python 3.5.1, pytest-2.9.1
collected 2 items

test_calculator.py::CalculatorTestCase::test_scenario_0 <- bdd.py PASSED
test_calculator.py::CalculatorTestCase::test_scenario_1 <- bdd.py PASSED

参考文献

真正好的python bdd库是behave

更改日志

0.2

  • 添加标签支持

0.1(2016年6月2日)

  • 初始版本
https://travis-ci.org/windelbouwman/bdd.svg?branch=masterhttps://codecov.io/gh/windelbouwman/bdd/branch/master/graph/badge.svg

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项