如何解决在phpunit中进行一些测试之前重新加载数据库
我目前正在使用phpunit和symfony 5开发单元测试。 在使用behat的先前工作中,我们仅能为具有特定标签的测试重新加载数据库。我想做类似的事情。我知道有setUp()方法和@before批注,但是它们不允许我为某些测试而不是其他测试做事情...
理想情况下,我想有一个@reloadBase注释来放置以此为目标的测试方法,该方法将绑定到reloadBase()方法或类似方法;或至少类似的东西,但到目前为止,我还没有想办法。
我猜有可能将这些测试放在一个单独的文件中,该文件可以使用setUp方法这样做,但这不是那么好,我想保留当前的文件组织...
有什么想法吗?谢谢
解决方法
这里有两个想法:
特质/基础类
使用执行所有重载工作的方法创建特征或公共基类。使用特征或扩展基类,然后仅在需要重新加载的方法中调用它。
扩展
实施extension。每个测试将使用由类和方法名称组成的字符串来调用BeforeTestHook
。您可以使用注释阅读器(例如Doctrine's)或使用reflection自己解析doc块,以检查该方法是否存在@reloadBase
注释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。