TDD 实现从 Behave 派生的步骤定义 (Python)

TDD Implementing Step Definitions derived from Behave (Python)

我应该把 Behave 的实现代码放在哪里,这样 Behave 的测试才不会失败?此外,我是否需要导入任何内容或放入任何代码,以便我编写的代码链接到功能文件。

这里是我的专题文件的摘录 \steps\main.feature ...

Feature: Main program
    Program allows users to create create and view development logs 

Scenario: User requests development logs for a particular user
    Given user has requested development logs for a given user
    Then the development logs for that user will show

以下是实施建议(来自 运行 Behave):

@given(u'user has requested development logs for a given user')
def step_impl(context):
    raise NotImplementedError(u'STEP: Given user has requested development logs for a given user')

@then(u'the development logs for that user will show')
def step_impl(context):
    raise NotImplementedError(u'STEP: Then the development logs for that user will show')

我知道这确实是基本信息,但文档中没有任何内容涵盖这一点,尽管有很多关于 Google none 的教程涵盖了这一点。我认为它太基础了。

答案有三个:

  1. 我提出了一个未实现的错误,所以测试失败了。

  2. 在我的 Python 文件的顶部,我需要包含 from behave import *.

  3. 我的 Python 文件需要是一个名为 steps.

  4. 的目录

在查看 Python TDD directory structure 的答案后,我通过反复试验自己解决了这个问题。