【问题标题】:Mock a class, edit one method and use another模拟一个类,编辑一个方法并使用另一个
【发布时间】:2013-03-23 01:19:52
【问题描述】:

我正在尝试测试一种方法,这取决于另一种方法。第一种方法注册一个用户,但必须检查给定的用户名是否可用。

我尝试了一些测试类

class Test {
    public function a() {
        return "ac";
    }

    public function b() {
        return $this->a();
    }
}

我想模拟类并编辑方法“a”的行为。

我试过了

$m = new Test();

$mock = \Mockery::mock($m);
$mock->shouldReceive("a")
         ->andReturn("ad");

echo $mock->b();

但方法“a”保持不变。

我如何编辑方法“a”的行为,或者,我该怎么做?

谢谢

【问题讨论】:

    标签: php unit-testing mocking mockery


    【解决方案1】:

    你可以写一个这样的测试:

    public function testMethodB() 
    {
        $test = \Mockery::mock('Test[a]');
        $test->shouldReceive('a')->andReturn('ad');
    
        assertEquals('ad', $test->b());
    }
    

    我认为它有效!

    【讨论】:

      猜你喜欢
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2022-06-19
      • 2014-08-13
      • 2014-05-05
      • 1970-01-01
      • 2020-11-26
      相关资源
      最近更新 更多