我正在使用我的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
...
答案 0 :(得分:0)
Django Testing Example page上有一些例子,它们会以此为出发点:
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
可以自动生成测试应用所需的代码吗?不,不是没有编写自己的逻辑来这样做。
测试Django应用程序的第一步应该是编写Feature Files。功能文件完成后,您可以运行behave -d
,它会为您提供存根/框架代码,以便复制到step files。此时,您可以编写脚本来与Django应用程序进行交互。