zoukankan      html  css  js  c++  java
  • php Mockery 错误 "call_user_func_array() expects parameter 1 to be a valid callback, class 'MockeryExpectation' does not have a method"

    错误写法

    $mock = Mockery::mock(MyClass::class)
        ->shouldReceive('foo')
        ->once()
        ->with($arg)
        ->andReturn($returnValue);

    Mockery::mock(MyClass::class) 返回的是 MockeryMockInterface

    而后面的几个方法都是 MockeryExpectation 里面的方法。

    最后我们调用 mock 实例的方法时需要的是 MockeryMockInterface,而不是  MockeryExpectation , 所以正确的写法如下:

    $mock = Mockery::mock(MyClass::class);
    $mock->shouldReceive('foo')
        ->once()
        ->with($arg)
        ->andReturn($returnValue);
    var_dump($mock->foo(3) === 5);

    又或者在第一种写法后面 $mock->getMock()->foo(3) 这样获取 mock 实例。

  • 相关阅读:
    linux tmux基本操作
    AJAX json集合传入Controller后台
    python 数据读取
    appium
    接口测试设计思路
    python 常用模块
    接口测试程序部分
    测试用例设计思路
    mock_待续
    网站收藏
  • 原文地址:https://www.cnblogs.com/eleven24/p/10430426.html
Copyright © 2011-2022 走看看