我正在尝试使用 PHPUnit
为我们的各种类/方法/函数编写一些测试。其中一些需要数据库连接。显然,我想模拟
这些,这样我就不会更改我们的数据库。
有人能给我指出一些解释如何执行此操作的代码吗?我看到很多 Mocking 的例子,但没有专门关于模拟数据库的例子。
最佳答案
通常,您不想模拟数据库或任何其他类似的外部依赖项。最好用其他东西将数据库包装在您的代码中,然后您可以模拟包装器。因为数据库可能有许多不同的交互方式,而您的代码和测试只关心一两个,所以您的数据库包装器只需要实现这些。这样模拟包装器应该非常简单。 您还需要对包装器进行某种集成测试,以检查它是否在执行预期的操作,但这些测试中只有少数几个,因此它们不会使您的单元测试速度减慢太多。
关于testing - 模拟数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229435/