3

これについてstackoverflowを検索しましたが、答えが見つかりませんでした

Ruby On Rails と Rspec から来たので、rspec のようなツールが必要です (より簡単な移行)。PEAR を介してインストールし、実行しようとしましたが、(まだ) 動作していません

まったく実行されていないので、誰かが同じ問題を抱えているかどうか尋ねたいだけです

マニュアルの例で実行してみました - http://dev.phpspec.org/manual/en/before.writing.code.specify.its.required.behaviour.html

phpspec NewFileSystemLoggerSpec

何も返さない

走っていても

phpspec some_dummy_value

何も返さない

4

8 に答える 8

0

私はPHPSpecをうまく使用しましたが、現在は積極的に開発されていませんね。それは素晴らしいことですが、私が行き詰まったプロジェクトで行くとは思わないでください。とにかく、私が次のセットアップを使用してWebブラウザーからテストを実行したところまで、CLI用にセットアップするのに役立つ何かが見つかるかもしれません。

PHPSpecConfiguration.php

$projectDir = realpath( dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' ) . DIRECTORY_SEPARATOR;

$simdal_root = $projectDir . 'library';
$phpspec_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'PHPSpec';
$mockery_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'Mockery';

$paths = array(
    'SimDAL'=>$simdal_root,
    'PHPSpec'=>$phpspec_root,
    'Mockery'=>$mockery_root
);

set_include_path( implode( PATH_SEPARATOR, $paths ) . PATH_SEPARATOR . get_include_path() );

require_once 'PHPSpec.php';
require_once 'Mockery/Framework.php';

class Custom_Autoload
{
    public static function autoload($class)
    {
        //$path = dirname(dirname(__FILE__));
        //include $path . '/' . str_replace('_', '/', $class) . '.php';
        if (preg_match('/^([^ _]*)?(_[^ _]*)*$/', $class, $matches)) {
            include str_replace('_', '/', $class) . '.php';
            return true;
        }

        return false;
    }

}

spl_autoload_register(array('Custom_Autoload', 'autoload'));

そして、それをすべて実行するファイル:AllSpecs.php;

require_once 'PHPSpecTestConfiguration.php';

$options = new stdClass();
$options->recursive = true;
$options->specdocs = true;
$options->reporter = 'html';

PHPSpec_Runner::run($options);

私はCLIテストが好きではありません...しかし、これは誰かを助けるかもしれません。

于 2009-10-25T08:54:26.220 に答える
0

PHPSpec は廃止されたことに注意してください。

http://blog.astrumfutura.com/2010/05/the-mockery-php-mock-objects-made-simple/#comment-88628508

于 2011-04-12T10:08:34.593 に答える
0

phpspec を使用してみましたが、バグが多すぎて未熟であることがわかりました。単体テストの作成にはSimpleTestを強くお勧めします。

于 2008-11-27T22:22:18.173 に答える
0

PHPSpec を使用することを本当に楽しみにしていました。ああ、PHPUnit にチェックインすると思います

于 2008-11-27T19:14:36.710 に答える
0

PHPUnit で RSpec っぽいタイプのテストを書くことはできますが、それにはいくつかの障害があります。

  • PHPUnit モックではそれらを再宣言できないため、before メソッドで多数のスタブを設定し、必要に応じてそれらをオーバーライドするのは困難です。スタブが予期された後にセットアップされるように手配することで、これを回避できますが、それは奇妙です。

  • PHP は Ruby ほど動的ではないため、クラスを特別に設計しない限り、クラス メソッドを簡単にモックまたはスタブ化することはできません。(これは、PHP 5.3 の最新の静的バインディング機能で変更される可能性があります)。

于 2009-05-31T18:03:34.727 に答える
0

私も実行できませんでしたが、BDD を PHPUnit で使用することもできます。ドキュメントを確認してください:

于 2008-11-27T15:08:17.677 に答える