首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用的PHP Prophecy Stub方法

未调用的PHP Prophecy Stub方法
EN

Stack Overflow用户
提问于 2017-04-26 13:40:58
回答 1查看 1.1K关注 0票数 0

我没办法通过这个明显的考试。Foo在其构造函数中获取Bar,当调用Foo::m()时,Bar::bar()被调用。

代码语言:javascript
复制
use PHPUnit\Framework\TestCase;

class Bar {
    public function bar() {
        echo "BAR";
    }
}

class Foo {
    protected $bar;
    public function __construct($bar) {
        $this->bar= $bar;
    }
    public function m() {
        $this->bar->bar();
    }
}

class FooTest extends TestCase {

    public function testM() {
        $bar = $this->prophesize(Bar::class);
        $bar->bar()->shouldBeCalled();
        $foo = new Foo($bar);
        $foo->m();
    }
}

预言无法注册对bar的调用::bar()

代码语言:javascript
复制
Some predictions failed:
  Double\Bar\P1:
    No calls have been made that match:
      Double\Bar\P1->bar()
    but expected at least one.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 14:18:03

$bar变量包含一个ObjectProphecy实例,该实例与Bar类无关。调用$bar->reveal()以获得一个测试双,这是Bar的扩展

代码语言:javascript
复制
public function testM()
{
    $bar = $this->prophesize(Bar::class);
    $bar->bar()->shouldBeCalled();
    $foo = new Foo($bar->reveal());
    $foo->m();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43635945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档