prodikl/mocktation

使用注解进行 PHP 模拟

v1.0.3 2018-03-11 18:20 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:14:54 UTC


README

使用注解进行 PHP 模拟

Build Status

Mocktation 允许您在模拟时定义类方法的返回值,而不是在测试中逐个定义每个返回值。

通过使用 @mockReturn "test" 注解,在创建模拟后调用方法时,默认返回 "test"。在测试中使用 $this->createMock(CLASSNAME) 创建模拟。

这加快了开发速度,因为您可以在编写方法时定义默认的模拟返回值,而不是事后决定模拟值。

  1. 安装 Mocktation

    composer require-dev prodikl/mocktation
  2. 使用 Mocktation/Testcase 而不是 PHPUnit 测试用例来扩展

    use Mocktation\TestCase;
    
    class ExampleTest extends TestCase {
        public function testGetNum(){
            /** @var Example|MockObject $mock */
            $mock = $this->createMock(Example::class);
            $this->assertEquals(5, $mock->getNum(234));
        }
    } 
  3. 使用注解来描述方法中的模拟

    class Example {
        /**
         * Accepts an int $num and returns it
         *
         * @param $num      int     The num to return
         * @return int      The example num
         *
         * @mockReturn      5
         */
        public function getNum($num){
            return $num;
        }
    }

以下是 Mocktation 注解列表

  • @mockReturn [returnValue] - 调用时返回 [returnValue]
  • @mockReturnArgument [argumentNumber] - 调用时返回 [argumentNumber]。 [argumentNumber] 从 0 开始。