当前位置: 首页 > news >正文

软件工程的八个步骤windows优化大师的特点

软件工程的八个步骤,windows优化大师的特点,网络规划设计师书籍,如何制作微信下单小程序pytest-bdd和behave是 Python 的两个流行的 BDD 测试框架#xff0c;两者都可以用来编写用户故事和可执行的测试用例#xff0c; 具体选择哪一个则需要根据实际的项目状况来看。 先简单看一下两者的功能#xff1a; pytest-bdd 基于pytest测试框架#xff0c;可以与pytest…pytest-bdd和behave是 Python 的两个流行的 BDD 测试框架两者都可以用来编写用户故事和可执行的测试用例 具体选择哪一个则需要根据实际的项目状况来看。 先简单看一下两者的功能 pytest-bdd 基于pytest测试框架可以与pytest的其他功能例如 fixtures一起使用。提供了一种紧凑的步骤定义方式可以通过装饰器定义并重复使用步骤。支持参数化的测试这样可以用同一组步骤进行多组数据的测试。 behave 基于 Python 的unittest测试框架。behave的步骤文件更加接近纯文本形式对非编程人员更友好。支持使用environment.py文件来定义在整个 test suite 运行前后需要进行的操作。 hehave 以下是behave的一些优点和特性 适用于非技术团队成员使用 Gherkin 语言可以撰写更接近自然语言的测试场景描述使得产品经理、商业分析师等非技术团队成员也能够理解、修改或编写测试场景。 环境控制behave提供了在测试运行前后设置和清理环境的功能例如数据库初始化或数据清理等只需要在environment.py文件里定义相应的函数即可。 可读性强和可维护性高behave强调的是实现从用户角度去描述系统行为的测试这使得测试和实际用户需求更加贴合增加了测试的可读性。而且将测试用例编写为人类可读的语言可以提高代码的可维护性。 创造可共享的步骤可以为常用的操作创建可重用的步骤这样就能写出更加简洁、易于维护的测试代码。 对标/兼容 Cucumber:behave的 Gherkin 语言实现与宽广使用的 Cucumber 测试框架非常接近这一点在迁移到或从 Cucumber 环境中迁出时会很有用。 与其他 Python 测试框架相容behave可与unittest、doctest、nose、py.test等 Python 测试工具完美集成。 综上所述behave提供了一种高度可读、可共享、适合大规模测试及非技术团队成员的 BDD 测试工具。 pytest-bdd 与 behave的比较 behave和pytest-bdd都是 Python 下常用的为支持 BDD行为驱动开发流程而设计的测试框架它们都采用.feature文件来描述行为并使用相似的 Gherkin 语言语法进行描述。它们的.feature文件的格式大致上是相同的但是在实际的使用和处理上可能会有一些细微差别。 以下是behave和pytest-bdd来处理.feature文件的一些细节差异 Scenario 参数化behave使用Scenario Outline语法来实现参数化场景而pytest-bdd使用Scenarios来实现参数化场景。在behave中你必须定义 Examples 表格并在其中提供参数值 而在pytest-bdd中你可以简单地用Scenarios读取一个外部.feature文件。 装饰器参数在pytest-bdd中步骤装饰器例如given、when和then可以接受一个可选的解析器用于从步骤文本中捕获值。这样分析器可以为已经定义的步骤参数提供多个场景。 其他大部分方面behave和pytest-bdd都是非常相似的例如都支持Given、When和Then这样的基本步骤都允许在Background段落中定义在每个场景前都要运行的步骤仍然允许你创建可重用的步骤定义。 综上behave和pytest-bdd处理.feature文件的方式非常相似虽然在某些特性和实现上有些许差别。选哪个更多取决于个人或团队需求。 pytest-bdd 与 behave的实例比较 接下来以一个具体的加法运算器为实例初步演示两者使用上的差异。 首先 两者的规格文件基本相同 这里的文件名是 calculator.feature内容如下 Feature: AdditionScenario: Add two numbersGiven I have a calculatorWhen I enter 1 and 2Then the result should be 3规格很简单 就是验证加法 12 3。 主要的差别是两者在测试代码上的差异。 使用pytest-bdd编写的测试代码的文件名是 test_calculator.py 内容如下 import sys import os import pytest #sys.path.append(D:/devworkspace/python-ency/chp3/tests/bdd/util) sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), util)) from calculator import Calculator from pytest_bdd import scenario, given, when, then, parsersscenario(../features/calculator.feature,Add two numbers) def test_add():print(sys.path.append(os.path.dirname(os.path.dirname(__file__))util))passpytest.fixture given(I have a calculator) def calculator():return Calculator()when(parsers.parse(I enter {a} and {b})) def enter_numbers(calculator, a, b):calculator.a int(a)calculator.b int(b)then(parsers.parse(the result should be {result})) def verify_result(calculator, result):assert calculator.add(calculator.a, calculator.b) int(result)pytest-bdd要求测试场景的函数和名称需要以test_开头 步骤函数没有特定的要求关于 pytest-bdd的更多命名的规范可以参考 基于pytest-bdd的项目目录结构和命名规范 使用behave编写的测试代码的文件名同样是 test_calculator.py 内容如下 import sys import os sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))), util))from behave import given, when, then from calculator import Calculatorgiven(I have a calculator) def step_impl(context):context.calc Calculator()when(I enter {num1} and {num2}) def step_impl(context, num1, num2):context.result context.calc.add(int(num1), int(num2))then(the result should be {expected_result}) def step_impl(context, expected_result):assert context.result int(expected_result)简单对比一下两者的测试代码区别 Beave 的写法相比更加简洁pytest-bdd 可以手动关联测试场景看上去灵活度更高 总结 这两个框架都有其优点和特性选择哪一个主要取决于特定需求。 如果你已经在使用pytest并且希望以最少的学习曲线使用 BDD那么pytest-bdd可能是更好的选择。另一方面如果你希望编写的测试代码更接近自然语言并且适合非技术团队成员阅读和修改那么behave可能是更好的选择。
http://www.hkea.cn/news/14285040/

相关文章:

  • 网吧网站怎么做的驰够网官方网站
  • 做染料的网站学做窗帘要下载哪个网站
  • 展示网站报价腾讯企业网页设计
  • 分享一个网站能用的临海网站制作
  • 做放单网站现货平台在中国合法吗
  • 如何在免费网站上做推扩wordpress标题怎么
  • 化工材料 技术支持 东莞网站建设wordpress多重搜索
  • 易语言做网站登录器wordpress自动推送token
  • 宿迁公司做网站百度域名是什么
  • 机场建设投资公司官方网站山西建网站
  • 网站推广合作响应式设计是什么意思
  • 潮州市住房和城乡建设局网站做销售记住这十句口诀
  • 网站建设百度优化高性能网站建设进阶
  • 考试网站怎么做的wordpress不居中
  • 网站参考页面设计网络营销的分类
  • 推荐网站建设服务话术网站建设的经费预算报告
  • 全国各大网站开发免费app
  • p2p做网站百度本地推广
  • 响应式设计的网站docker实际企业解决方案
  • 建设品牌网站自己的网站怎么赚钱
  • 网站后台添加投票系统汽车4s店网站建设方案
  • 做网站可行性分析做网站需要买多大空间
  • 企业网站有哪些功能北京vi设计公司广州标志设计
  • 百度四川建设厅网站百度搜索排名购买
  • 东营网站建设推广公司网站被百度收录吗
  • 网站建设哪家最好用wordpress自定义布局
  • 做家具有那个网站好手机百度怎么翻译网页
  • 杭州精品课程网站建设用asp做的大型网站
  • 酒店网站建设的基本内容建设网站要求
  • 网站树状型结构优化彩票网站搭建