【发布时间】:2011-05-19 06:54:12
【问题描述】:
我很好奇其他人是如何处理这个问题的。写一个测试并没有那么糟糕,但嘲笑有点糟糕,会打断我的心流。是否可以拥有一个“fixtures”目录并说 mock_db.php 仅具有特定的模拟声明?
更进一步,将这些模拟抽象到一个函数中会是一种不好的做法吗?
即:
// function to include a db mock
include_once 'test/fixtures/dbmock.php';
$mockMYSQL = $dbmock('mysql', 'db1');
$mockMSSQL = $dbmock('mssql', 'db2');
只是想知道其他有经验的测试人员如何处理这个问题。我正在编写脚本来同步 2 个数据库,因此这个示例可能会变得非常相关。
【问题讨论】:
-
数据提供者不帮助你吗?
-
您是在谈论使用
$this->getMock('<class>')创建的 PHPUnit 模拟对象还是这些自定义编写的模拟?使用夹具来创建测试支持对象是完全有效和推荐的。 -
@David 我希望模拟可重用于不同的测试套件。这种嘲弄的业务仍然很绿,对如何实现这一点一无所知。
标签: php unit-testing phpunit