【PHP单元测试利器PHPUNIT深入用法(二)_PHP】教程文章相关的互联网学习教程文章

php – 单元测试使用具有嵌套插件依赖项的自定义wordpress插件【代码】

所以我创建了一个自定义插件并实现了单元测试. 到目前为止,很容易添加WooCommerce依赖项和私有插件依赖项(Iconic Plugin). 问题是Iconic插件依赖于WooCommerce.在每次测试中,它认为WooCommerce未激活. 因此,它没有正确实例化. 标志性插件class Iconic_Private_Plugin() {/*** Constructor*/public function __construct() {public $bar;if ( ! Iconic_Private_Core_Helpers::is_plugin_active( 'woocommerce/woocommerce.php' ) &&...

php – 如何对Symfony控制器进行单元测试【代码】

我正在尝试使用Codeception在测试工具中获取Symfony控制器.每个方法都从如下开始:public function saveAction(Request $request, $id) {// Entity management/** @var EntityManager $em */$em = $this->getDoctrine()->getManager();/* Actual code here...*/ }public function submitAction(Request $request, $id) {// Entity management/** @var EntityManager $em */$em = $this->getDoctrine()->getManager();/* 200+ lines...

PHP单元测试中基于XSD架构的XML验证

我正在开发一个PHP驱动的应用程序组件,它将一些数据导出到XML文件,该文件必须遵循XSD文件定义的方案.我知道如何手动验证文件,但如果可以在单元测试中完成,那将非常方便. 有没有可用的库或框架可以帮助我做到这一点?解决方法:一种可能性是使用DOMDocument::schemaValidate或DOMDocument::schemaValidateSource.由于这两个方法中的任何一个都返回一个布尔值,您可以断言返回的值为true.

php – 单元测试Smarty模板【代码】

我使用Smarty模板,我只是想知道我是否可以使用任何类型的测试机制.不同模板文件的数量正在增加,复杂性也在增加.理想情况下,我希望测试最终输出HTML,以确保Smarty中使用的模板/条件/变量按预期工作.有没有办法做到这一点?解决方法:您可以使用Smarty的fetch()功能.下面是一个松散的示例/伪代码. 要测试的模板{* foo.tpl *} <html><head></head><body>{$hi}</body> </html>预期产出<!-- foo.html --> <html><head></head><body>Hello...

可选的PHP类型提示/检查单元测试或静态分析?【代码】

PHP类型提示不支持标量变量[1],如int或string 但是,我们发现在连续集成期间注释函数中的类型(int或string)以发现错误仍然非常有用,例如: 目前我用的方法就像function foo($s) {//assert( is_string($s), 'not a string' );... }在单元测试和开发模式期间,断言将被取消注释以发现潜在的错误. 我在寻找是否有更好的方法来做到这一点. [1] http://www.php.net/manual/en/language.oop5.typehinting.php解决方法:一个有趣而优雅的解决...

php – 为什么Symfony 3单元测试移出了实际的捆绑包?【代码】

我从来没有真正写任何测试,因为我通常必须以低预算工作.所以我通常只删除演示文件.但是,我注意到测试目录从Symfony 2中的/ src / MyBundle / Test移到了Symfony 3中的/ tests,我想知道为什么? 捆绑包是或者至少我认为它们是应用程序中可能“可解密”的组件.这意味着它总是可以在另一个Symfony“运行时”中运行/使用相同的包,而不费吹灰之力. 因此,将tests目录从其相关的bundle中移出到根目录对我来说没有任何意义.无缘无故地使独立...

php – 会话开始/结束时的单元测试问题【代码】

我在为简单的会话包装器编写单元测试时遇到问题. 该类本身具有一些基本功能集,get,exists等.所有这些函数都有一个checkrtSessionStart检查,它执行以下操作:protected static function assertStarted() {if (strlen(session_id()) < 1) {throw new Exception("Some text here");}return; }在编写单元集时,我有以下setUp和tearDown方法.我有这些因为我希望每个运行的测试都有一个新的会话环境.protected function setUp() {session_...

php – 使用Laravel中的配置应用程序文件进行单元测试【代码】

我的模型方法依赖于config()全局,这里;public function getGroup() {if(config('app.pages.'.$this->group.'.0')) {return $this->group;}return "city"; }我试图在我的单元测试类中测试这个方法,public function testGetGroupReturnsCityAsDefault() {$response = new Response();$response->group = "town";$test = $response->getGroup();dd($test); }我得到的错误是;Error: Call to a member function make() on null /home/va...

php – 使用基于Active Record的框架进行单元测试【代码】

我正在使用一个基于Active Record pattern的ORM的框架.我的数据库中的每个表都绑定到我的代码中的模型. 我想对这些模型进行单元测试,因此我首先从模型中提取每个save()和update()调用,以便仅对对象进行更改,并且只有在需要时才会持久化. 我不知道如何在这种情况下应用这种策略.我有一个聊天模型,用户是其中的一部分,用户可以在聊天中添加ChatNote. 这是当前的实现:// User.php public function addChatNote($chatNoteContent, Cha...

php – 如何通过更改引用传递的参数来单元测试调用具有副作用的函数的方法?【代码】

我有一个方法来调用内置的PHP函数,openssl_random_pseudo_bytes.public function generateRandomBytes() {$crypto_secure = TRUE;// $crypto_secure is passed by reference and will be set to FALSE by// openssl_random_pseudo_bytes if it uses an insecure algorithm$random_bytes = openssl_random_pseudo_bytes(16, $crypto_secure);if (!$crypto_secure){throw new Security_Exception('Random bytes not generated by a c...

php – 单元测试一个创建对象的方法【代码】

我正试图让我的头部单元测试,还有一件我需要找到的拼图. 我要做的是为以下代码编写测试.在这种情况下,我有一个非常简单的前端控制器(用PHP编写).class frontController {public function routeRequest($oRequest){$sClassname = $oRequest->getController();$sMethod = $oRequest->getAction();$oController = new $sClassname();$oResponse = $oController->{$sMethod}($oRequest);return $oResponse;}}我遇到的问题是因为代码创建...

使用模拟进行单元测试(PHP)【代码】

我有一个类:class Foo {function getCurrentBar() {$model = Query::findByPk($this->getSession()->get('current_bar')); // Pseudocode...return $model;} }所以基本上我的应用程序中一次只有一个条形,它作为整数存储在会话中.我经常调用一个辅助函数来查找模型实例,它会进行数据库查询.还有缓存,但现在无关紧要. 我的问题是:我如何对此进行单元测试?我测试的类需要这个.我想我可以改变会话以包含id但是这意味着我需要在数据库...

php – 单元测试HTTP动作

我正在写另一个PHP框架,现在我编写了很多东西,我开始考虑单元测试(是的,我知道,形式不好). 某些操作使框架修改HTTP行为,例如创建cookie,重定向浏览器.另一个主要特性是访问的URI可能会影响框架的行为方式. 简而言之,我需要能够测试影响环境或受环境影响的东西,而不仅仅是函数/方法的返回值.我怎么能这么做最容易?解决方法:SimpleTest的Web Tester可能对您有所帮助.

php – 单元测试CodeIgniter with Simpletest – 很少测试

在我们的开发团队中,我们决定尝试单元测试.我们使用Simpletest.然而,这是一条艰难的道路.一周后,我只创建了一个测试某个帮助文件的单元测试.而已.其余的(控制器,模型,视图,库)还没有单元测试.我打算不测试其中的大多数.例如,视图太难以测试,所以我放弃测试.接下来,控制器.我计划我的控制器不做复杂的事情,所以它只在模型和视图之间传递信息.我会把那些更复杂的东西移到图书馆或帮手那里. 现在我的问题: 1)我做错了吗?到目前为止,...

php – 是否有可能在CodeIgniter中对View进行单元测试?

我正在使用TOAST,它在测试模型方面做得很好……但是视图呢?解决方法:我会查看Selenium RC(http://seleniumhq.org/projects/remote-control/)进行视图测试.它不直接与CodeIgniter集成. PHPUnit内置了对它的支持,因此您可以从那里获取驱动程序以使其正常工作.

PHPUNIT - 相关标签
单元测试 - 相关标签