在 phpunit 中进行一些测试之前重新加载数据库

我目前正在使用 phpunit 和 symfony 5 开发单元测试。在之前使用 behat 的工作中,我们只能为具有特定标签的测试重新加载数据库。我想做类似的事情。我知道有 setUp() 方法和 @before 注释,但它们不允许我为某些测试做事,而不是其他测试......

理想情况下,我希望有一个 @reloadBase 注释来放置以此为目标的测试方法,该注释将绑定到 reloadBase() 方法或类似的方法;或者至少是类似的东西,但到目前为止我想不出一种方法来做到这一点。

我想有可能将这些测试放在一个单独的文件中,该文件将有一个 setUp 方法来执行此操作,但这并不是很好,我想保留当前的文件组织...

有任何想法吗 ?谢谢


缥缈止盈
浏览 85回答 1
1回答

HUH函数

这里有两个想法:特征/基类使用执行所有重新加载操作的方法创建特征或公共基类。使用该特征或扩展基类并仅在需要重新加载的方法中调用它。扩展实施扩展。将为BeforeTestHook每个测试调用由类和方法名称组成的字符串。您可以使用注释阅读器(例如Doctrine 的)或使用反射并自行解析 doc 块来检查@reloadBase该方法上是否存在注释。
打开App,查看更多内容
随时随地看视频慕课网APP