测试

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

测试

大致说来,有两种类型的测试。单元测试可以测试特定函数的输入和输出。功能测试允许您命令“浏览器”,你在你的网站上浏览到页面,点击链接,填写表单和断言,你看到页面上的某些东西。

单元测试

单元测试是用来测试你的“业务逻辑”,应该住在Symfony的类是独立的。欧宝娱乐app下载地址出于这个原因,Symfony并没有欧宝娱乐app下载地址一个意见你用于单元测试的工具。然而,最受欢迎的工具PhpUnit)PhpSpec

功能测试

创造很好的功能测试可以强硬一些开发人员完全跳过这些。不要跳过功能测试!通过定义一些简单的功能测试,您可以快速发现任何大的错误之前部署:

最佳实践

至少定义一个功能测试,检查是否成功加载应用程序页面。

可以这么简单的功能测试:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30
/ / src / AppBundle /测试/ ApplicationAvailabilityFunctionalTest.php名称空间AppBundle\测试;使用欧宝娱乐app下载地址\\FrameworkBundle\测试\WebTestCase;ApplicationAvailabilityFunctionalTest扩展WebTestCase{/ * * *@dataProviderurlProvider * /公共函数testPageIsSuccessful(美元url){美元客户端=自我::createClient ();美元客户端- >请求(“得到”,美元url);美元- >assertTrue (美元客户端- >getResponse ()- >isSuccessful ());}公共函数urlProvider(){返回数组(数组(' / '),数组(' /帖子'),数组(' / post / fixture-post-1 '),数组(' /博客/类别/ fixture-category '),数组(“/档案”),/ /……);}}

这段代码检查所有给定的url加载成功,这意味着他们之间的HTTP响应状态码200年299年。这看起来可能不是很有用,但鉴于该花了多少努力,值得拥有它在您的应用程序。

在计算机软件中,这种类型的测试冒烟测试,由“初步测试揭示简单故障严重程度足以拒绝未来的软件发布”

功能测试中硬编码的url

你们中的一些人可能会问为什么之前的功能测试不使用URL发电机服务:

最佳实践

功能测试中使用硬编码的URL而不是使用发电机的URL。

考虑以下功能测试使用路由器服务来生成测试页面的URL:

1 2 3 4 5 6 7 8
公共函数testBlogArchives(){美元客户端=自我::createClient ();美元url=美元客户端- >getContainer ()- >get (“路由器”)- >生成(“blog_archives”);美元客户端- >请求(“得到”,美元url);/ /……}

这将工作,但它有一个巨大的缺点。如果开发人员错误地改变的路径blog_archives路线,仍将通过测试,但原始URL(旧)不会工作!这意味着任何书签的URL将被打破,你会失去任何搜索引擎页面排名。

测试JavaScript功能

内置的功能测试客户端是伟大的,但它不能被用来测试任何JavaScript行为在你的页面。如果你需要测试这个,考虑使用图书馆在PHPUnit)。

当然,如果你有一个沉重的JavaScript前端,您应该考虑使用纯粹的基于JavaScript的测试工具。

了解更多关于功能测试

考虑使用HautelookAliceBundle为您的测试装置使用生成真正的数据骗子爱丽丝

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。