Jos*_*shB 22 php automation integration-testing
我目前正在对我的代码执行单元测试(使用PHPUnit和Jenkins),但我已经阅读了很多关于集成测试的内容.
是否有任何工具可以在PHP(最好是自动化)中执行此操作?
我将如何实施它?在任何地方都有任何好的教程吗?
多年以后…… 现在有了Codeception框架,您可以使用它来进行单元,集成和功能测试。
Codeception使用PHPUnit作为运行其测试的后端。因此,可以将任何PHPUnit测试添加到Codeception测试套件中。
在单元测试中,您将模拟数据库访问,文件系统,HTTP请求和其他组件以隔离代码并使其更快。
集成测试不需要孤立地执行代码,这意味着您将真正使用这些组件并检查输出/结果是否达到预期。
为了说明这一点,请看一下Codeception DOC的这个集成测试示例:
<?php
function testSavingUser()
{
$user = new User();
$user->setName('Miles');
$user->setSurname('Davis');
$user->save();
$this->assertEquals('Miles Davis', $user->getFullName());
$this->tester->seeInDatabase('users', ['name' => 'Miles', 'surname' => 'Davis']);
}
Run Code Online (Sandbox Code Playgroud)
基本上,方法是除了单元测试之外,还要实现模拟测试,模拟测试不仅是测试单个单元,更像一组单元在一起,并且您将它们视为逻辑单元,在处理某些输入时应以某种方式运行或调用方法。
一个可能的库是google代码存储库中的yaymock。它是一个php5模拟库。
进一步的集成测试或多或少是仅测试完整系统行为的测试。基本的事情是设置测试环境,然后再部署您的应用程序。您也可以使用单元测试框架或模拟库来进行这种测试。如你所愿。在您的情况下,详细的集成测试是基于数据库中的某些数据和预期的“ html”输出的http请求。
要使它自动化,您可以使用一些连续的集成框架... Hudson,Arbit或phpUnderControl。对于使用hudson和一些不错的测试插件设置php,有一个很好的教程。它还提到了一些有用的插件,例如代码覆盖率检查等,这些插件可以集成到环境中。