启用对behavior-django的支持
最后修改时间:2023 年 10 月 23 日借助 PyCharm,您可以通过在 Django 应用程序中启用Behavior- django集成,从 Django 的行为驱动开发 (BDD) 中受益。
要启用Behavior-django集成:
behave
behave-django
修改项目的结构以满足行为结构要求。在 Django 应用程序目录中,为测试场景文件创建features目录,并为场景的 Python 实现创建steps子目录。创建一个新的 Gherkin 功能文件features/auth.feature和一个新的 Python 步骤文件features
/steps 。/auth.py 现在,使用Gherkin功能测试语言将测试场景添加到 auth.feature 中:
Feature: auth Scenario: Unauthenticated user can't access the page Given I am not authenticated When I access the page Then Status code is 302 Scenario: Authenticated user can access the page Given I am authenticated When I access the page Then Status code is 200
在features /steps /auth.py Python 文件中实现auth.feature场景中使用的步骤:
from behave import * from django.contrib.auth.models import User use_step_matcher("re") @given("I am not authenticated") def step_impl(context): pass @when("I access the page") def step_impl(context): context.response = context.test.client.get("/") @then("Status code is (?P<status>\d+)") def step_impl(context, status): code = context.response.status_code assert code == int(status), "{0} != {1}".format(code, status) @given("I am authenticated") def step_impl(context): user = User.objects.create_superuser("jane", "jane@example.org", "123") context.test.client.force_login(user)
修改views.py文件和urls.py文件以添加测试示例所需的代码:
视图.py
from django.contrib.auth.decorators import login_required from django.http import HttpResponse # Create your views here. @login_required def show_user(request): return HttpResponse("OK")
urls.py
from django.urls import path from Django_Behave import views urlpatterns = [ path('', views.show_user), ]
现在,实现关键调整:添加
'behave_django'
到settings.pyINSTALLED_APPS
的部分。完成此操作后,您的应用程序就可以进行测试会话了。您所需要的只是针对您的场景运行测试配置。
在编辑器窗口中打开auth.feature文件。单击任何语句旁边的装订线并选择Run <scenario name>。运行工具窗口将打开,其中包含测试运行结果。
Scenario
从测试报告中可以得知该测试是由manage.py运行的。您还可以查看场景的已通过、失败或跳过的步骤数。
默认情况下,不显示成功的步骤。单击工具栏上的 来显示它们。
感谢您的反馈意见!
此页面是否有帮助?