0

私は PHPSpec 2 を使い始めており、Mockery を気に入っていますが、理解できない問題に遭遇しました。

静的関数によって返される配列があり、この配列を検証したいと考えています。必要なすべてのキーがそこにあることなどを確認してください。

私は試した:

$systems = CacheFactory::getCacheSystems();
$systems->shouldBeArray();

としても:

$systems = CacheFactory::getCacheSystems();
$this->spec($systems)->shouldBeArray();

しかし、どちらも機能しませんでした。明らかな理由で最初のエラー$systemsは、オブジェクトではないと言ってエラーになりました。2 番目のエラーは、クロージャーをシリアル化できなかったというものです。配列にはクロージャーがあります(これは構成配列です)が、それらをフィルターで除外しようとしましたが、役に立ちませんでした。

配列の例:

array(
'someCache' => array(
    'cache' => 'SomeCacheSystem',
    'checks' => function () { return isCacheActivated(); }
),

これは現在 PHPSpec 2 で可能ですか? 私はばかげたことを見逃しているだけですか、私はフレームワークにかなり慣れていません。

4

1 に答える 1

1

私は CacheFactory が仕様の下であなたの主題であると仮定します:

<?php

namespace spec;

use PhpSpec\ObjectBehavior;
use Prophecy\Argument;

class CacheFactorySpec extends ObjectBehavior
{
    function it_has_all_the_keys_needed()
    {
        $this::getCacheSystems()->shouldBeArray();
    }
}
于 2013-09-09T09:15:32.803 に答える