PHP MySQL功能单元测试
发布时间:2020-12-13 17:06:42 所属栏目:PHP教程 来源:网络整理
导读:我需要测试我使用 PHP 5创建的许多函数,这些函数执行我的Web应用程序所需的数据库CRUD类型操作(SELECT,UPDATE,INSERT,DELETE). 我一直在寻找PHP单元测试套件,例如Simple Test和PHP Unit,它们似乎提供了我需要的东西但是我不确定我是如何实现这一点的,因为等
我需要测试我使用
PHP 5创建的许多函数,这些函数执行我的Web应用程序所需的数据库CRUD类型操作(SELECT,UPDATE,INSERT,DELETE).
我一直在寻找PHP单元测试套件,例如Simple Test和PHP Unit,它们似乎提供了我需要的东西但是我不确定我是如何实现这一点的,因为等价分区和边界分析并不是那么清楚.我只需要输入不同的变量并改变它吗?这似乎毫无意义,因为不同的字符串可能不一定有任何区别. 任何有关这方面的指导都会有所帮助,因为我之前没有遇到过. 解决方法
如果您正在测试PHP代码和MySQL数据库之间的交互,那么您正在执行集成测试,而不是单元测试.
以下是使用Enhance PHP framework进行集成测试的一些示例,它测试了一个保存和检索租户对象的存储库类. 它不是针对预先填充的数据库运行,而是在完全空的数据库上运行,并在使用简单的表助手时创建和销毁表.这消除了对测试数据库中处于正确状态的特定数据的依赖性,这很难保持一致. <?php class TenantRepositoryTestFixture extends EnhanceTestFixture { private $Target; public function SetUp() { $tables = new TableHelper(); $tables->CreateTenantTable(); $this->Target = Enhance::GetCodeCoverageWrapper('TenantRepository'); } public function TearDown() { $tables = new TableHelper(); $tables->DropTenantTable(); } public function SaveWithNewTenantExpectSavedTest() { $tenant = new Tenant(); $tenant->Name = 'test'; $saved = $this->Target->Save($tenant); $result = $this->Target->GetById($saved->Id); Assert::AreNotIdentical(0,$result->Id); Assert::AreIdentical($tenant->Name,$result->Name); } public function SaveWithExistingTenantExpectSavedTest() { $tenant = new Tenant(); $tenant->Name = 'test'; $saved = $this->Target->Save($tenant); $saved->Name = 'changed'; $saved = $this->Target->Save($saved); $result = $this->Target->GetById($saved->Id); Assert::AreIdentical($saved->Id,$result->Id); Assert::AreIdentical($saved->Name,$result->Name); } } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |