代码的功能测试通常需要外部资源,例如数据库。
基本上有两种方法:
- 假设资源(例如数据库)始终在运行并且始终可用
- 作为测试的一部分启动/停止相关资源
在 Python unittest(2) 的“旧”世界中,setUp() 和 tearDown() 方法可用于控制服务。
使用 py.test,世界变得更加复杂,setUp() 和 tearDown() 方法的概念已被用于实现夹具的 funcarg 魔法所取代。老实说,这种方法被打破了——至少作为 setUp/tearDown 方法的替代品。
在使用 py.test 的项目中控制服务和资源的推荐方法是什么?
我们应该继续使用 setUp/tearDown 方法编写测试(至少在需要的地方)还是有更好的模式?