6

私は、 Gherkin 構文を使用したPythonic BDD フレームワークである behaviourを使い始めたばかりです。振る舞いは特徴を取ります、例えば:

Scenario: Calling the metadata API
   Given A matching server
   When I call metadata
   Then metadata response is JSON
   And response status code is 200

そしてステップファイル、例えば:

...
@then('response status code is {expected_status_code}')
def step_impl(context, expected_status_code):
    assert_equals(context.response.status_code, int(expected_status_code))

@then('metadata response is JSON')
def step_impl(context):
    json.loads(context.metadata_response.data)
...

そして、それらを組み合わせて美しいテスト レポートを作成します。

試験結果

これらの手順の一部 - 次のように:

  • metadata response is JSON
  • response status code is {expected_status_code}

私のプロジェクトの多くで使用されており、それらをインポートして再利用できる一般的なステップ ファイルにグループ化したいと考えています。

有用な手順を別のファイルに抽出してインポートしようとしましたが、次のエラーが発生しました。

@then('response status code is {expected_status_code}')
NameError: name 'then' is not defined

一般的な手順ファイルを作成してインポートするにはどうすればよいですか?

4

2 に答える 2

3

インポートされたファイルでは、behavior デコレーター ( などthen) をインポートする必要があります。

from behave import then
from nose.tools import assert_equals

@then('response status code is {expected_status_code}')
def step_impl(context, expected_status_code):
    assert_equals(context.response.status_code, int(expected_status_code))

...
于 2014-02-03T09:25:16.430 に答える