1

我正在使用行为来对我的 Django 应用程序进行验收测试。是否有可能生成实际测试所需的 python 代码?到目前为止,我所拥有的骨架如下:

@given('I am logged in')
def step_impl(context):
    assert False

@given('I am on the contact list')
def step_impl(context):
    assert False

...
4

1 回答 1

0

Django 测试示例页面上给出了一些示例,这将为您提供以下内容作为起点:

from behave import given, when, then

@given('a user')
def step_impl(context):
    from django.contrib.auth.models import User
    u = User(username='foo', email='foo@example.com')
    u.set_password('bar')

@when('I log in')
def step_impl(context):
    br = context.browser
    br.open(context.browser_url('/account/login/'))
    br.select_form(nr=0)
    br.form['username'] = 'foo'
    br.form['password'] = 'bar'
    br.submit()

@then('I see my account summary')
def step_impl(context):
    br = context.browser
    response = br.response()
    assert response.code == 200
    assert br.geturl().endswith('/account/')

@then('I see a warm and welcoming message')
def step_impl(context):
    # Remember, context.parse_soup() parses the current response in
    # the mechanize browser.
    soup = context.parse_soup()
    msg = str(soup.findAll('h2', attrs={'class': 'welcome'})[0])
    assert "Welcome, foo!" in msg

Behave 可以自动生成测试应用所需的代码吗?不,不是没有写你自己的逻辑来做到这一点。

测试 Django 应用程序的第一步应该是从编写Feature Files开始。一旦你的功能文件完成,你可以运行behave -d它会给你存根/骨架代码,用于复制到你的步骤文件中。此时,您可以编写脚本来与您的 Django 应用程序交互。

于 2014-05-19T20:13:34.647 回答