php mockery单元测试,php 单元测试 phpunit ,如何mock类调用自身的方法?

9c98fe03383ffeca78ca12f3181f2137.png

...pan>{

"fzaninotto/faker": "~1.4",

"mockery/mockery": "0.9.*",

"phpunit/phpunit": "~4.0",

"phpspec/phpspec": "~2.1"

},

"autoload": {

"classmap": [

...

phpunit单元测试phplaravel5 使用laravel5做单元测试时,碰到以下问题,需要测试querySessionIdTest这个方法,

但是需要mock出sessionidtest这个方法,具体代码如下:

类如下:class ZabbixSystem implements ApmSystemInterface public function querySessionIdTest() { echo 'querySessionIdTest'; return $this->sessionidtest(); } public function sessionidtest() { echo 'sessionidtest'; return 'aaa'; }}

单元测试方法:public function testQuerySessionIdSuccess() { $return = 'aaa'; $stub = Mockery::mock('mcokname');// $this->app->instance('ZabbixSystem', $stub); $stub->shouldReceive('querySessionIdTest')->andReturn($return); $response = $stub->querySessionIdTest(); $this->assertEquals('aaa', $response); } public function testQuerySession() { // 为 SomeClass 类创建桩件。 $stub = $this->getMockBuilder('App\Services\ZabbixSystem')->setMethods(array( 'querySessionIdTest', 'sessionidtest' ))->getMock(); // 配置桩件。 $stub->method('sessionidtest')->willReturn('111'); $this->app->instance('ZabbixSystem', $stub); $this->assertEquals('foo', $stub->querySessionIdTest()); }

通过两种方式进行测试,但都不成功,我希望的结果为:

echo 'querySessionIdTest';

然后测试成功

...pan>{

"fzaninotto/faker": "~1.4",

"mockery/mockery": "0.9.*",

"phpunit/phpunit": "~4.0",

"phpspec/phpspec": "~2.1"

...amework": "..*"

},

"require-dev": {

"fzaninotto/faker": "~.",

"mockery/mockery": "..*",

"phpunit/phpunit": "~.",

"phpspec/phpsp

...的理念,再引入Mock技术。在开始之前,需要安装PHPUnit和Mockery库(本文不使用PHPUnit自带的Mock库): # 安装PHPUnitpear config-set auto_discover 1pear install pear.phpunit.de/PHPUnit# 安装

...的退出代码。

ATOUM

MOCKERY

Mockery 是非常简单灵活的 PHP mock 对象框架,一般用在 PHPUnit,PHPSpec 和其他的单元测试中。

PHAKE

Phake 是 PHP 框架,提供 mock 对象,双向测...

...架,是通过规范异常驱动的PHP测试框架。 Mockery Mockery是简单而灵活的PHP mock对象框架,常用在PHPUnit,PHPSpec或者其他测试框架的单元测试中。它的核心目标是提供一个双向测试框架,提供一个su...

...安装这个项目里面的包 "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "symfony/css-selector": "

...amework": "..*"

},

"require-dev": {

"fzaninotto/faker": "~.",

"mockery/mockery": "..*",

"phpunit/phpunit": "~.",

"phpspec/phpsp

... >{ "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1" },

...on testQuerySessionIdSuccess() { $return = 'aaa'; $stub = Mockery::mock('mcokname');// $this->app->instance('ZabbixSystem',

...网址:https://github.com/swiftmailer/swiftmailer27、 MockeryMockery 是一个简单但灵活的PHP模拟框架,用于单元测试,支持PHPUnit、PHPSpec等测试框架。Mockery的核心目标是提供一个可以采用DSL定义模拟行为的测试框架.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值