跳转到主要内容

最小BDD库

项目描述

http://gfxmonk.net/dist/status/project/pea.png

pea - 最小的绿色蔬菜。

pea 是一个最小的Python BDD框架,类似于Ruby的 cucumber 和Python的 lettuce。它的目的是帮助您编写相同类型的测试 - 但是在直接的Python代码中,而不需要所有的解析和间接操作以及其他要跳过的圈子。它非常类似于ruby的 coulda

使用cucumber风格测试的优点包括

  • 您可以使用纯英文编写测试,而不需要内联代码

  • 您的测试是可读的,并且希望是可编辑的

  • 您可以放心地重用步骤,因为它们都确实做了它们说的事情

pea相对于lettuce、cucumber等项目的优点

  • 它是一个非常简单的库(因此得名)。它没有做很多,因此可能没有很多错误

  • 您的功能只是Python代码

    • 不需要“BDD语言解析器”

    • 不需要正则表达式

    • 堆栈跟踪是有意义的

    • 语法高亮显示

    • 您可以使用ctags在测试和实现之间跳转,以及用于方法补全。

    • 管理并重命名函数比管理正则表达式要容易得多。

    • 您可以使用您喜欢的任何抽象。

    • 您可以使用丰富的Python对象作为参数,而不是解析字符串。

  • 它不需要自己的测试运行器;因此,您可以直接使用nose与您的单元测试一起运行。

那么我该如何使用它呢?

以下是一个最小示例

from pea import *

@step
def I_go_to_the_store():
        world.location='store'
        world.cart = []

@step
def I_buy_some(item):
        world.cart.append(item)

@step
def I_go_home():
        world.location = 'home'

@step
def I_have_some_delicious(item):
        assert item in world.cart
        world.assertEquals(world.location, 'home')

# --------------------

class TestShopping(TestCase):
        def test_buying_some_peas(self):

                Given.I_go_to_the_store()
                When.I_buy_some('peas')
                And.I_go_home()
                Then.I_have_some_delicious('peas')

...然后您运行它(使用nosetests,在详细模式下)

http://gfxmonk.net/dist/0install/impl/pea/screenshot.png

通常您会将您的步骤放在单独的Python模块(或多个)中,但这由您决定。

基础知识

  • @step将您的函数添加到pea的步骤注册表中,这使得它们可以通过GivenWhenAndThen来调用。

  • 要在一个步骤内部重用另一个步骤,只需调用该函数即可!

需要注意的事项

  • 请确保您继承自pea.TestCase(并在setUp/tearDown中调用super),因为它负责在测试之间重置world

  • 您也可以在world上使用TestCase断言方法 - 例如 world.assertEquals(expected, actual)

Pea与rednose配合得很好

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pea-0.1.2.tar.gz (6.8 kB 查看哈希)

上传时间

由以下机构支持