Phpspec没有打过与此匹配的电话

Phpspec没有打过与此匹配的电话,php,bdd,phpspec,Php,Bdd,Phpspec,我正在努力解决phpspec的问题,而且在实际拨打电话时,没有进行匹配的呼叫。以下是迄今为止的代码: function it_imports_social_feeds( ContainerInterface $container, FacebookManagerFactory $managerFactory, FacebookConnector $facebookConnector, FacebookMapper $face

我正在努力解决
phpspec
的问题,而且
在实际拨打电话时,没有进行匹配的呼叫。以下是迄今为止的代码:

    function it_imports_social_feeds(
        ContainerInterface $container,
        FacebookManagerFactory $managerFactory,
        FacebookConnector $facebookConnector,
        FacebookMapper $facebookMapper,
        EzContent $ezContent,
        Collection $feed,
        Content $content
    )
    {
        $chainProfiles = [];


        $container->getParameter('someParam1')->willReturn($chainProfiles);
        $container->get('someParam2')
            ->shouldBeCalled()->willReturn($managerFactory);

        $managerFactory->createFacebookConnector(Argument::type('string'))->willReturn($facebookConnector);
        $facebookConnector->getFeed()->shouldBeCalled();

        $facebookMapper->getData()->willReturn($feed);


        $container->getParameter('someParam3')->shouldBeCalled();
        $container->getParameter('someParam4')->shouldBeCalled();

        // these 2 call are issue
        $ezContent->save(Argument::type('array'), Argument::any(), Argument::any())->willReturn($content)->shouldBeCalled();
        $ezContent->updatePublishedDate(Argument::type('string'), $content)->shouldBeCalled();

        $this->importFeeds();

    }
并实现了类方法:

public function importFeeds()
{
    $socialChainsProfiles = $this->container->getParameter('mrkisha_social_feed_profiles');

    foreach($socialChainsProfiles as $socialMedia => $chainsProfiles) {

        foreach($chainsProfiles as $chain => $chainsProfile) {
            $fbConnector = $this->container
                ->get("social.feed.facebook.factory")
                ->createFacebookConnector($chainsProfile);

            $fbMapper = new FacebookMapper($fbConnector);

            $fbData = $fbMapper->getData();

            $contentTypeIdentifier = $this->container->getParameter('social_feed_content_type_identifier');
            $folderId = $this->container->getParameter('social_feed_folder_ids')[$chain];

            $sortedData = $fbData->sortByDesc('publishedAt')->values()->all();

            foreach ($sortedData as $item) {
                $item['socialFeed'] = $socialMedia;
                $publishedDate = $item['publishedAt'];

                unset($item['publishedAt']);

                // These 2 calls withing loop phpspec does not see
                $content = $this->ezContent->save($item, $contentTypeIdentifier, $folderId);

                $this->ezContent->updatePublishedDate($publishedDate, $content);
            }

        }
    }
}

我是测试新手,phpspec的在线资源几乎不存在,非常感谢您对我在这里缺少什么概念以及我做错了什么提供帮助。

容器调用参数正确吗?因为,如果是这样的话,引起问题的电话就是他们。请同时发布消息错误。错误
未进行匹配的调用
与$ezContent->save havent make相关,而在实现中调用了该错误。我想到一件事,我必须为每个for循环提供数组参数才能到达第三个循环吗?代码的实现与我在spec文件中读到的不同。如果您已经修改了它,那么您也应该修改代码,否则您应该报告真实的规范类。如果代码和类实际上是您所拥有的,那么您的规范文件是完全错误的。规范文件和规范代码中的唯一区别是参数
someParam1..4
,其中我调用了我在实现中拥有的精确参数。那么为什么会发生更改?请根据需要修改代码或规范,否则这毫无意义