【2013考研初试时间PHPUnit初试】教程文章相关的互联网学习教程文章

在使用PHPUnit进行测试时,如何在使用实现IteratorAggregate接口的Mock类时防止重新声明错误?【代码】

我正在编写一个依赖于外部类exceptionManager的单元测试.我希望能够预测这个类上的某些特定函数会返回什么,所以我使用的是模拟对象.代码非常简单:$mockExceptionManager = $this->getMock('exceptionManager');麻烦的是,我的异常管理器实现了IteratorAggregate接口,这需要一个如下所示的方法:public function getIterator() {return new ArrayIterator($this->exceptions); }当我运行单元测试时,我收到以下错误:Fatal error: Ca...

有没有办法在PHPUnit中关闭特定测试的“Stop On Failure / Error”?【代码】

我正在开发一个API文档系统,并希望动态检查每个命令是否附加了文档.最简单的方法是动态循环每个命令并检查现有文档以匹配它. 我的代码看起来像这样:public function testMissingDocs() {foreach ($aCommands as $sKey => $aOptions){$this->assertNotNull($oDocs->get($sKey));} }这个问题是PHPUnit的StopOnFailure / Error特性,它在第一个断言失败后停止测试.我理解这个功能的原因,我想在大多数测试用例中继续使用它,但对于动态断...

PHPUnit测试可能会出现致命错误吗?【代码】

我正在为类加载器编写一些单元测试,并且第一个测试是断言尝试引用类而不首先加载它确实会失败. 测试看起来像这样:/*** @expectedException PHPUnit_Framework_Error*/ public function testInstantiateUnloadedClass() {$foo = new Foo(); }遗憾的是,运行测试会产生以下消息:PHP Fatal error: Class ‘Foo’ not found in /Users/jfvaren/workspace/classloader/ClassLoaderTest.php on line 7我必须简单地接受这是不可行的吗?...

如何使用phpunit在Laravel 4中测试命名空间对象【代码】

我正在组织我的测试文件夹以反映我的应用程序中的命名空间对象和界面.但是,在使用命名空间练习TDD时,我一直在努力维护秩序.我完全不知道如何让所有这些作品发挥得淋漓尽致.任何有关此问题的帮助将不胜感激! 结构体:app/ Acme/ Repositories/ UserRepository.php User.phptests/ Acme/ Repositories/ UserRepositoryTest.php UserTest.php应用程序/ Acme公司/ user.php的<?php namespace Acme;use Eloquent;class User extends El...

Mockery和PHPUnit:此模拟对象上不存在方法【代码】

你能告诉我问题出在哪里吗?我有一个文件GeneratorTest.php与以下测试:<?phpnamespace stats\Test;use stats\jway\File; use stats\jway\Generator;class GeneratorTest extends \PHPUnit_Framework_TestCase {public function tearDown() {\Mockery::close();}public function testGeneratorFire(){$fileMock = \Mockery::mock('\stats\jway\File');$fileMock->shouldReceive('put')->with('foo.txt', 'foo bar')->once();$gener...

PHPUnit使用注释来断言异常与方法调用

有两种方法可以在Phpunit中声明异常: >使用注释@expectedException>使用方法调用$this-> expectException() 我试过他们两个,他们工作得很好,完全一样. 哪种方法正确?是否有关于应该使用哪一个的指导原则? PS:当异常基于某些条件并且并非总是发生时,显然应该使用该方法.解决方法:使用expectException()被认为是最佳实践,请参阅此article.

取决于phpunit似乎没有工作【代码】

也许只是我,但@depends似乎没有像我期望的那样工作.我的代码:<?php use PHPUnit\Framework\TestCase;class MyTest extends TestCase {/** @depends testFunc1*/public function testFunc2(){exit('TEST FUNC 2 called');}public function testFunc1(){exit('TEST FUNC 1 called');} }当我执行phpunit MyTest.php时,我希望看到TEST FUNC 1被调用但是我看到了TEST FUNC 2被调用.因为它似乎只是按照它们出现在脚本中的顺序运行测试,无...

PHPUnit,Selenium基本测试因致命错误而失败【代码】

我正在从Github运行PHP 5.3.6和最新版本的PHPUnit.当我从文档中复制示例17.1时,当assertTitle失败时,它会遇到致命错误.我收到此错误消息:Fatal error: Call to a member function toString() on a non-object in <path>/phpunit/phpunit-selenium/PHPUnit/Extensions/SeleniumTestCase.php on line 1041当我将断言更改为pass时,PHPUnit运行得很好. 我挖出了这条线,这就是片段:protected function onNotSuccessfulTest(Exception ...

为返回数组的函数编写PHPUnit Test【代码】

现在有一天我玩PHPUnit.我已经完成了它的文档,但我无法理解它.让我解释一下我的情况. 我在一个类中有一个函数,它接受三个参数1个数组,2个字符串,3个类对象.此函数通过将第二个参数作为数组的索引并将结果作为该索引的对象来返回数组.我的功能如下public function construct($testArray, $test,$analysisResult) {$postedTest = explode('_', $test);$testName = end($postedTest);$postedTest = implode("_", array_slice($postedT...

如何使用PHPunit测试抽象类?【代码】

让我们假设我在/var/www/project/calculator.class.php上有一个文件 这是班级namespace App/Module/Calculator; abstract class calculator{static property $add; static property $result; function add($val_a, $val_b){return $a + $b; }}我想为上面的类创建一个测试用例,但似乎无法测试它.我陷入了最基本的阶段.require '/var/www/project/calculator.class.php';class CalculatorTest extends \PHPUnit_Framework_TestCase {...

如何在laravel 5.5中运行phpunit【代码】

我在laravel 5.5中运行phpunit时遇到问题.我已经去了vendor / bin然后在windows中使用我的命令提示符执行phpunit.但cmd只是给出了另一个选项或标志,如下图所示: 我已经阅读了用于unittest的laravel 5.5文档.据说我们只需要执行phpunit {如https://laravel.com/docs/5.5/testing所示}然后我尝试了这个:How to run single test method with phpunit?phpunit --filter testBasicTest tests\Unit\ExampleTest如下所示 : BUt它说“无...

在PHPUnit中自定义setUp【代码】

我想在setUp函数中使用一个具有不同参数的对象运行一堆测试. 我该怎么做呢?我尝试使用@dataProvider,但这不适用于setUp我很快发现.. 这是我想要做的事情(使用@dataProvider):/* * @dataProvider provider */ function setUp($namespace, $args) {$this->tag = new Tag($namespace, $args); }function provider() {return array(array('hello', array()),array('world', array())); }function testOne() {}function testTwo() {}结...

phpUnit初学者【代码】

我是如何开始使用phpUnit作为我已经制作的一堆函数和类的测试框架? 编辑:是的,我已经阅读了文档.基本上我在遵循BankAccount示例时尝试过测试.但我得到错误: 警告:require_once(PHP / CodeCoverage / Filter.php)[function.require-once]:无法打开流:第38行的[/] / unitTest / phpunit.php中没有这样的文件或目录. 此外,php脚本似乎从#!/usr/bin/env php开始,表明它们应该从控制台运行.我宁愿从浏览器运行这些… 假设我有一个...

名称空间 – 为什么在phpunit测试中没有加载名称空间自动加载类?【代码】

为了赞美phpunit,autoload和namespace之间现有的大杂烩安排是这样的: 我创建了一个运行PhpUnit测试并使用命名空间自动加载的简单测试项目.我在bootstrap文件中注册自动加载,如下所示:set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/classes/folder"); spl_autoload_register();在单元测试中,我加载并测试我的类,如下所示:$obj = new \some\space\someClass(); // which is in the classes/some/space folde...

检查类是否具有使用PHPUnit定义的常量的正确方法【代码】

我试图找出最佳或正确的方法来检查一个类是否有一个使用PHPUnit定义的常量. PHPUnit文档似乎没有涵盖这一点,这让我想知道我是否通过测试来做正确的事情 – 但它是我班级的一个重要特征. 我有以下课程: PurchaseManager.php/*** Message sent when a course has been purchased*/ const COURSE_PURCHASED_MESSAGE = 'coursePurchasedMessage';…并且其部分测试类具有此测试: PurchaseManagerTest.phppublic function testCoursePu...

PHPUNIT - 相关标签