所以我的公司一直在努力进行更多的单元测试,我认为这很好。但是,我们的产品在数据库方面相当沉重,并且团队的一些纯粹主义者设置标准(我所在的)是坚持在单元测试中没有mysql数据库EVER"
虽然从这一点开始通常这样会很好,但是我们有很多旧的代码,你甚至很少在单元测试中不使用它。做一些研究,有些人建议在内存数据库中使用sqlite来处理这样的情况,在这种情况下你可能有需要从数据库中获取一些数据的方法,然后对这些数据做一些复杂的逻辑。 / p>
基本上,如果在查询中没有指定数据库,我可以使用它,但是如果它不起作用,因为我无法找到一种方法来对内存数据库进行别名。可能吗?基本上我希望能够运行像" SELECT * FROM config.users WHERE id =' 2'"在内存数据库
答案 0 :(得分:0)
如果我在你的鞋子里,我想我首先尝试使用MySQL自己的in-memory database engine。我认为这需要重写最少量的代码。
由于您使用的是php,因此您可以重写以使用依赖注入和模拟对象。 Mockery是一个流行的php模拟对象框架;还有其他人。