如何使用phpmock

时间:2017-10-23 10:32:16

标签: php function mocking phpunit

当我们包含自定义lib函数时,Phpmock不起作用。我在这里附上了示例代码。 getFirstName()函数返回" Steven",当它调用表单getName函数时。

phpmock \测试\ indexTest.php

<?php
  namespace testing;
  require_once(TEST_ROOT_DIR.'/vendor/autoload.php');
  $cwDir = dirname(__FILE__);
  $requireFile = str_replace('\test','',$cwDir).'\index.php';
  require_once($requireFile);
  use PHPUnit\Framework\TestCase;
  use phpmock\MockBuilder;
  use phpmock\functions\FixedValueFunction;
  class indexText extends TestCase {
    public function testGetName(){
      $lo_builder =  new MockBuilder();
        $lo_builder->setNamespace(__NAMESPACE__)
          ->setName("getFirstName")
          ->setFunctionProvider(new FixedValueFunction('Lee'));            
         $lo_mock = $lo_builder->build();           
        $lo_mock->enable();
        var_dump(getFirstName());      
        $result = getName();
        $this->assertEquals('Lee mark',$result);
        $lo_mock->disable();
    }
  }

phpmock / index.php的

<?php 
  require_once('inc/lib.php');

  function getName(){
   return getFirstName().' '.getLastName();
  }
?>

phpmock / INC / lib.php

<?php 
  function getFirstName(){
    return 'Steven';
   }
  function getLastName(){
    return 'mark';
  }
?>

0 个答案:

没有答案