問題タブ [phpspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - phpspecとlaravelのセットアップ
新しい Laravel プロジェクトをセットアップし、PHPSpec を統合しています。Laravel で適切に動作する phpspec.yml ファイルの適切な動作例を見つけるのに苦労しています。Rails の RSpec と同様の方法です。
私の望ましいフォルダ構造は次のようになります
現在、私の phpspec.yml は次のようになっています。
モデル関連のテストを spec/models フォルダーにコピーしましたが、「phpspec を実行」してもそれらのいずれも実行されません。また、名前空間がLaravelの「Model」や「Controller」ではなく、おそらくEloquentやBaseControllerに似ていることにも気づきました..
この拡張機能も使用しています: https://github.com/BenConstable/phpspec-laravel
これを設定する方法がわからず、実際の例が見つかりません。前もって感謝します!
編集: Jeffrey Way の別のフォーラムで見つけたアドバイス:
Behat でコントローラーをテストできます。PHPSpec はそれ (または Codeception) の代わりにはなりません。
アップデート:
それ以来、Laravel にうまく統合され、広く使用されているように見えるので、代わりに Codeception を使用することにしました。
php - PHPSpec - メソッドがファイルを返すかどうかを確認する
メソッドがファイルを返すかどうかをテストしようとしています。メソッドは基本的に次のとおりです。
したがって、私の最初は、 docsに従って文字列を返すため、文字getFile()列を返すかどうかをテストすることでした。file_get_contents
したがって、私のテストは次のようになります。
しかし、私のテストは次のメッセージで失敗します:
私も試してみgettype(getFile())ましたが、戻ります"string"。
誰が私が間違っているのか教えてもらえますか。
php - SplObjectStorage 内に予言オブジェクトが存在するかどうかのテストに関する phpspec の問題
フォローテストが通らない理由を誰かに説明してもらえますか?
テスト対象のコード
phpspec テスト
laravel - メソッドがこれを返すか、それともそれを返すかを確認する方法
データベースにクエリを実行し、結果を含む配列を返すか、結果がない場合は false を返すメソッドがあります。
この場合、PHPSpec に必要なのは、それが配列を返すか false を返すかをテストすることだけですが、それを行う方法がわかりません。
または、データベース クエリをモックして、メソッドから分離する必要がありますか?
php - phpspec spec_path ロケーション設定
これを理解できず、この場合、ドキュメントは特に役に立ちません。
次のようなパッケージ構造があります。
私が達成しようとしているのは、すべてのテストスイートを対応するコンポーネント ディレクトリに配置することです。
私のphpspec.yml(にある./phpspec.yml)は次のようになります。
src/Acme/Foo/Component1/Specs/src/Acme/Foo/Component1スペックはではなく で作成されるため、これは機能しませんsrc/Acme/Foo/Component1/Specs。
これはどういうわけか可能ですか?
ありがとう
php - PHPSpec と Laravel - double メソッドが見つからない問題の処理方法
他のメソッドを呼び出しているスタブに関しては、仕様テストに問題があるようです。
私は、コントローラーが HTTP レイヤーのみを担当することを保証するために、Laracasts の「六角形」アプローチに従っています。
コントローラ
そのため、ルートが初期化されると、新しい Connect インスタンスを作成し、$this クラスのインスタンスを Connect クラスに渡し (リスナーとして機能する)、loginOrCreate メソッドを呼び出します。
類人猿\ユーティリティ\コネクト
テスト中のメソッドと、これまでのところ、何がうまくいかないかについての私の理解に焦点を当てるために、これを切り詰めようとしました。
接続仕様
というわけで、気になる仕様はこちら。まず、Facebook トークンを既に持っているふりをします。次に、うまくいかないのは、getFacebookUserData メソッドがユーザー テーブルに存在するサンプル ユーザーを返すことをごまかす必要があることです。
ただし、テストを実行すると、次のようになります。
「willReturn」が getFacebookUserData メソッドで起こっていることを無視することを望んでいましたが、それを個別にテストしているようですが、そうではないようです。
私が何をすべきかについての推奨事項はありますか?
すべての OAuth クラス メソッドを独自のクラスなどにプルする必要がありますか? OAuthがすでに独自のクラスであることを考えると、そうする必要があるかもしれないというのは奇妙に思えます。getFacebookUserData でメソッドをスタブする方法はありますか?
更新 1
そこで、getFacebookUserData 内で呼び出されているメソッドをスタブしてみました。更新された仕様は次のようになります。
仕様はまだ失敗しますが、エラーが変更されました:
興味深いことに、これらの新しいスタブを $this->getFacebookUserData スタブの後に配置すると、エラーは「定義されていません」ではなく「見つかりません」になります。明らかに、手元の内部の仕組みを完全には理解していません:D
php - Behat SpecBDD と StoryBDD の基本機能を備えた symfony2 サンプル アプリケーション
Symfony2 で SpecBDD や StoryBDD のような PHP でのビヘイビア駆動開発のためのツールを学び始めています。
これらのツールの公式ドキュメントは優れていますが、私が学習を始めるには十分ではありません (このテーマの他の初心者にも役立つことを願っています)。
それで...これらのツールで開発されたsymfony2サンプルアプリケーションの基本的な機能(基本的なユーザー認証/承認、他のモデルの基本的なクラッド、およびいくつかの静的ページを意味します)はありますか?
たとえば、フォームタイプやその他のsymfonyのもののphpspecの書き方を知りたい
php - phpspecのクラスで親呼び出しメソッドをテストする方法
親呼び出しメソッドを含むクラスがあります。テスト済みのメソッドを編集してその行を削除すると、テストに失敗するように、親が呼び出されていることを確認したい
私のクラス:
私のテスト(仕様):
それは可能ですか?
php - phpspecで元のモッククラスにアクセスする
スタブされたコラボレーターを使用するクラスの仕様があります。今、私のクラス (クラス A としましょう) で、共同作業者のクラス名 (クラス B としましょう) を操作して、独自のクラス名をクラスに役立つものに変換します。問題は、仕様内のスタブ化されたコラボレーター「クラス B」が実際のクラスではなく、予言オブジェクトであることです。モックしているオブジェクトはサードパーティのライブラリにあるため、私は制御できず、そこから getName() または getSignature を提供することはできません。
予言オブジェクトで倍増している元のクラスを抽出する方法はありますか?
laravel-4 - Laravel 4 アプリのテストの最初のショット (PHPSpec/BDD と PHPUnit/TDD の比較)
私はあまりにも長い間、この問題と格闘してきました。どちらも明らかに実行可能/有用なツールであるため、どちらか一方にジャンプする必要があることはわかっていますが、何週間もの間、フェンスで立ち往生しており、両方を調査しています。
PHPUnitと PHPSpec - どちらが長期的な保守性とプログラミングの実践につながる可能性がありますか?
私は何人かのベテランの PHPUnit -> PHPspec 変換者/ユーザーと話しましたが、彼らは現在 PHPspec を信頼しており、その BDD アプローチのおかげでより良い設計が促進されると主張しています。ただし、これは非常に新しいツールであるため、PHPUnit と比較してコミュニティ/チュートリアルが不足しています。
現在、私の PHP 開発は Laravel 4 開発に集中しています。
PHPUnit は基本的に Laravel フレームワークに組み込まれているため、前もって選択する方が簡単なように思えますが、私は PHPSpec の BDD の側面が非常に気に入っています。ただし、PHPSpec は Laravel のファサード設定とうまく連携したくないようです (これは、可能であれば回避することをお勧めします)。
私の本当の難問は、既存のテスト カバレッジがゼロの既存の Laravel 4 プロジェクトにうまく統合される可能性が高いのはどれかということです。
私は PHPUnit と PHPSpec の両方を既存のプロジェクトに統合することに初期の/簡単な試みをしましたが、最初のテストの作成をどこから始めればよいか本当にわかりませんでした。
私は、長期的に見て、どちらに時間を投資する価値があるかを本当に整理しようとしています.
両方を経験した人からのリソース/洞察は大歓迎です。