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

如何重置PHPUnit模拟对象的期望【代码】

我在TestCase中进行了大量测试.我想设置一个模拟对象,在大多数测试中返回相同的值,但在一些测试中我想自定义该值. 我的想法是创建一个set_up()方法(我无法在自动调用的setUp()中设置期望值),并在每次测试开始时手动调用它.在这个方法中,我会设置默认的返回值,然后在需要自定义返回值的少数测试中,我会第二次调用expect,并希望覆盖默认的返回值.这不起作用,返回值不会被覆盖. 这是一个简化的例子:<?phpclass SomeClass {function s...

使用PHPUnit在doctrine2中模拟findOneBy“field”【代码】

如果我模拟存储库方法找到我得到预期的结果,但如果我调用findBy,findOneBy,findOneById我总是得到null. 代码示例:$mock->expects($this->once())->method('getId')->will($this->returnValue(1)); $mockRepository->expects($this->any())->method('findBy') //if here I use 'find' works for all other cases always null->will($this->returnValue($mock));有这种情况发生的原因吗?有可能像findById或findOneById一样嘲笑Doct...

symfony2 phpunit:如果不期望状态代码,如何获取异常消息【代码】

使用我的symfony 2应用程序,我使用phpunit来测试每个控制器的动作响应的状态代码是否是预期的. 如果没有,我怎么能让phpunit显示异常附带的错误消息,或者最好,模拟一个探查器异常页面? 这样做的原因是我有一个动作在phpunit中返回500代码,但在我的浏览器中加载得很好. 我的代码:/*** @dataProvider urlProvider* @param $url*/ public function testPageIsSuccessful($url) {$client = self::createClient(array(), array('PHP_AU...

PHPUnit Mocking View Helper ZF2【代码】

我创建了一个View Helper:class SousMenuContrat extends AbstractHelper {private $maiContratService;public function __construct(FMaiContratService $maiContratService,) {$this->maiContratService = $maiContratService;}public function __invoke($iMaiContratId, $sActive){$oContrat = $this->maiContratService->selectById($iMaiContratId);return $this->getView()->partial('maintenance/sousmenuc...

如何使用xml配置从phpunit中排除多个文件?【代码】

我在我的xml文件中有以下内容,但它没有跳过第二个文件:<testsuites><testsuite name="Application Test Suite"><directory>./app/tests/</directory><exclude>./app/tests/unit/1.php</exclude><exclude>./app/tests/unit/2.php</exclude></testsuite></testsuites>解决方法:我建议你使用phpunit group annotation来标记类/方法,并将该组标记为从主测试套件中排除.您可以阅读this article作为进一步的参考. 例如,您可以在测试类中...

PHPUnit – 模拟特征【代码】

我有一个由多个类使用的特征,即class SomeClass {use TimeoutTrait;function handle() {$this->traitFunction() // can this be mocked?} }PHP单元能够模拟traitFunction()吗? 在此先感谢您的帮助. 问候解决方法:特征是代码容器,代码被编译器“复制粘贴”到您想要使用它的类中,从而使其可以在全世界重复使用. 通常,单元测试中的特征函数没有什么特别之处.当类被实例化时,特征函数与可以复制粘贴的函数没有任何区别,只要它们在类...

PHPUnit的@ticket注释有什么作用?【代码】

我一直试图找出PHPUnit中的@ticket注释:/** * @ticket * @return bool */ public function annotationTest() {return true; }我想用它来将功能链接到我们的票务软件中的票证,但我担心可能会有不同的用途. 文档中有一个条目(link),但它没有内容.我一直试图通过在线搜索找到更多,虽然我似乎无法找到答案.我认为它必须有目的吗? 什么是@ticket注释?解决方法:它被phpunit/phpunit-ticketlistener-jira软件包使用,它允许您的测试与...

xDebug和PHPUnit的代码覆盖率为100%,实际上并非如此【代码】

我有以下功能:function foo($p) {if ($p == null)throw new Exception('bla');if ($p == null){throw new Exception('bla');}[...] }我对此函数的测试不包括抛出异常的行.但PHPUnit告诉我第一个’throw’语句被覆盖,第二个没有.也许第一个被解释,但它没有被执行. 因此,如果我没有达到100%,我不希望得到“100%”的消息. 这是xDebug中的错误还是我有可能配置xDebug / PHPUnit?解决方法:xDebug的代码覆盖率指标是基于语句而不是基...

Clover PHPUnit覆盖率报告包括不需要的文件的覆盖范围【代码】

我刚刚在我的Jenkins工作中设置了CloverPHP. 我正在使用PHPUnit来生成三叶草报告,它似乎与显示该文件的覆盖率报告不同/usr/share/php/SymfonyComponents/YAML/sfYamlInline.php 作为报告的一部分.我不确定它的来源,我的猜测是PHPUnit或XDebug包含它.显然这不是我自己的代码库的一部分,所以我对它不感兴趣.它影响了我的项目产生的整体指标.有没有办法从报告中排除这个文件? 非常感谢,NS 编辑 答案是使用phpunit xml配置文件,该文件...

PHPUnit – 尝试@cover不存在的方法【代码】

我的测试用例如下:class FooTest extends PHPUnit_Framework_TestCase {/** @covers MyClass::bar */function testBar(){$result = MyClass::bar();$this->assertSomething($result);}}现在,测试本身运行得很好,但代码覆盖率抱怨:PHP_CodeCoverage_Exception: Trying to @cover not existing method "MyClass::bar *//**".有任何想法吗?解决方法:更正 这个问题不在PHPUnit中,而是在PHP_CodeCoverage中.解析逻辑在某种程度上是重...

Laravel 4.1 – 使用Phpunit和Mockery测试Artisan命令【代码】

我在Laravel 4.1中编写了我的第一个Artisan命令,想要了解如何测试它.我的命令做了一件事(现在).它基本上从DB中删除指定天数的表条目(Notes). 命令示例:OneTimeNote:delete --days=25该命令适用于飞行颜色.但是我先把这个命令写成了学习目的,现在我希望用它来测试.我正在使用PHPUnit和Mockery. 命令代码:http://pastebin.com/index/dZrxpt8x 正如您所看到的,我正在注入我的Note实现(用于抽象),然后我执行其中一个方法’deleteNote...

PHPUnit:如何模拟私有方法?【代码】

参见英文答案 > Mock private method with PHPUnit 9个我有一个这样的课:class A {private function testing($x){// do something$this->privateMethod();}private function privateMethod($number) {// do something}}要调用testing(),我使用:$reflection = new \ReflectionClass('A'); $method = $reflection->getMethod('testing'); $method->setAccessible(TRUE);$object = new A(); $pa...

我如何在PHPUnit中assertInstanceOf()?【代码】

我已经为单元测试编写了这段代码:<?phpnamespace tests;use data\address\Address; use lists\Collection; use PHPUnit\Framework\TestCase;class CollectionTest extends TestCase {public function testIsCollectionOf(){$Collection = new Collection(Address::class);$this->assertInstanceOf($Collection, Collection::class);} }当我跑过它时,我得到了这个错误:PHPUnit 5.4.6 by Sebastian Bergmann and contributors.Runt...

Travis.ci环境变量不能在phpunit中读取【代码】

有人可以帮助我理解为什么我的环境变量没有在travis.ci的phpunit测试中读取吗? 所以我正在尝试使用travis为我正在研究的php / javascript应用程序编写一些自动测试.然而,当我编写一个测试来检查从travis读取到phpunit的环境变量时,它们会失败.这意味着(据我所知),环境变量无法被phpunit读取,或者它们没有被正确地传递给travis测试. .travis.ymllanguage: php php:- '7.0'- '7.1'before_install:- echo "extension=ldap.so" >>php ...

PHPUnit filenaming约定【代码】

我刚刚开始在一些现有代码上试用phpunit.我们使用的命名约定是MyClass类应该在MyClass.class.php中. PHPUnit似乎要求该文件应该被称为MyClass.php. 有没有办法解决? 我在尝试生成骨架测试类时注意到了它:phpunit --skeleton-test MyClass.classPHPUnit 3.3.4 by Sebastian Bergmann.Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php". Fatal error: Call to a member function getOutClas...

PHPUNIT - 相关标签