Cyn*_*nic 4 python bdd python-3.x python-behave
有没有办法编写适用于多个关键字的步骤。就像说我的特点是:
Scenario: Something happens after navigating
Given I navigate to "/"
And say some cookie gets set
When I navigate to "/some-other-page"
Then something happens because of that cookie
Run Code Online (Sandbox Code Playgroud)
我试图避免同时定义:
@given('I navigate to "{uri}"')
def get(context, uri):
current_url = BASE_URL + uri
context.driver.get(current_url)
@when('I navigate to "{uri}"')
def get(context, uri):
current_url = BASE_URL + uri
context.driver.get(current_url)
Run Code Online (Sandbox Code Playgroud)
如果您只定义一个并尝试将其用作两者,则会出现raise NotImplementedError(u'STEP:错误。在上面的例子中,它并没有那么糟糕,因为这一步很简单,但重复代码似乎是一种不好的做法,而且你可能会在更复杂的事情上发生同样的事情,对我来说,如果有像一个@all 或 @any 关键字。
抱歉,如果这已在某处得到解答,但很难搜索,因为很难找到此类问题的独特搜索词
事实证明,这可以使用@step. 例如
from behave import step
@step('I navigate to "{uri}"')
def step_impl(context, uri):
current_url = BASE_URL + uri
context.driver.get(current_url)
Run Code Online (Sandbox Code Playgroud)
将适用于:
Scenario: Demo how @step can be used for multiple keywords
Given I navigate to "/"
When I navigate to "/"
Then I navigate to "/"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5214 次 |
| 最近记录: |