首页 > 解决方案 > 行为.use_step_matcher | 如何巧妙或有效地使用它?| 好的设计原则?

问题描述

我需要一些关于如何巧妙或有效地使用behave.use_step_matcher() 的指导。

A. 因此,我通过在文件中的所有导入后parse声明所有功能来初始化默认匹配器。behave.use_step_matcher('parse')environment.py

B. 现在在步骤文件中,对于某些步骤,我需要使用behave.use_step_matcher('re'). 所以我只在这些步骤之前提到它。

C. 现在在 environment.py 文件中,在after_step(context, step)钩子中,我重置为使用behave.use_step_matcher('parse')匹配器。

我的问题是,在将匹配器更改为“re”的任何步骤之后,其他需要匹配器“解析”的步骤都不起作用。

我发现的 1 个解决方案是明确提及use_step_matcher所有步骤。

但是https://jenisys.github.io/behave.example/step_matcher/using_matchers.html说要为所有功能设置默认匹配器,将其设置在environment.py文件中,我已经这样做了。

另外,我正在将匹配器重置回文件parse中的after_step挂钩environment.py

  1. 那么为什么它不起作用呢?

  2. 你能帮我更好地理解它吗?

另外,将来我计划实现步骤库并在行为步骤(调用步骤的步骤)中调用行为步骤。在这种情况下,如果父步骤使用“matcher1”但嵌套步骤使用不同的匹配器(考虑到我们可以创建自定义匹配器)。

  1. 那么管理匹配器的最佳实践是什么?

如果你能指导我完成这件事,那将是非常友好的。

感谢您!

PS:

  1. 我对行为和 python 非常幼稚,我已阅读https://github.com/behave/behave/issues/613但什么都不懂。:(

标签: pythondesign-patternsbddpython-behave

解决方案


推荐阅读