testing - 模拟数据库连接

标签 testing mocking phpunit

我正在尝试使用 PHPUnit 为我们的各种类/方法/函数编写一些测试。其中一些需要数据库连接。显然,我想模拟这些,这样我就不会更改我们的数据库。

有人能给我指出一些解释如何执行此操作的代码吗?我看到很多 Mocking 的例子,但没有专门关于模拟数据库的例子。

最佳答案

通常,您不想模拟数据库或任何其他类似的外部依赖项。最好用其他东西将数据库包装在您的代码中,然后您可以模拟包装器。因为数据库可能有许多不同的交互方式,而您的代码和测试只关心一两个,所以您的数据库包装器只需要实现这些。这样模拟包装器应该非常简单。 您还需要对包装器进行某种集成测试,以检查它是否在执行预期的操作,但这些测试中只有少数几个,因此它们不会使您的单元测试速度减慢太多。

关于testing - 模拟数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229435/

相关文章:

ios - swift 2.2 和 xcode 7.3 中的模拟和文档

unit-testing - NSubstitute:无法模拟与没有相应 setter 的成员变量关联的语法糖 getter 方法

laravel - 我如何测试 Laravel 护照 API 端点

php - 使用 JavaScript 或 PHP 测试与 YouTube 服务器的连接

visual-studio - 不使用 Visual Studio 生成 .webtest 文件

c++ - 您如何设计 C++ 应用程序才能使模拟对象最易于使用?

php - 单元测试文件操作 - 在哪里维护模拟目录结构?

symfony - 如何在 Symfony 中使用 Monolog 断言记录了一行

eclipse - 在 Eclipse 中进行模糊测试? 'Run As..."中基于规则的模糊器