2016-11-24 12 views
0

TDDはまずテストを書くべきだと主張しています。私はサービスを書くことを望んでいる、私はまだ何も持っていない場合、私はサービスのテストを書き始めるのですか?最初のテストは何でしょうか?サービスをインスタンス化して例外を取得しようとしましたか?存在しないコードをテストしてください

PHP Laravelベースの例:

class ServiceTest extends TestCase 
{ 
    public function testServiceExists() 
    { 
     $service = App::make('grid'); 
    } 
} 

結果:

PHPUnit 5.5.4 by Sebastian Bergmann and contributors.

E 1 /1 (100%)

Time: 123 ms, Memory: 14.00MB

There was 1 error:

1) ServiceTest::testServiceExists ReflectionException: Class grid does not exist

/home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:749 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:644 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:709 /home/supertrall/domains/md.local/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237 /home/supertrall/domains/md.local/laravel/tests/Grid/ServiceTest.php:20

ERRORS! Tests: 1, Assertions: 0, Errors: 1.

答えて

2

はTDDで良いことです。それは、別のエラーに遭遇するためにエラーを解決する必要があることを意味しています。

TDDでコーディングする場合は、wishful thinkingでプログラムします。つまり、コンポーネント自体を実装する前に、コンポーネントを使用するコードを記述します。これは必要な機能とデータを発見するのに役立ち、この発見に続いてよりシンプルで便利なAPIにつながります。

TDDの概念はそれほど学習するのは難しくありませんが、TDDのテスト - ファースト開発アプローチに慣れていくのは難しく、時間がかかります。あなたは正しい道を歩んでいます。詳細を読むだけで、方法論に慣れ親しんでください。

1

あなたは正しい道にあります!

TDDは方法論です。それは一連の規律を必要とし、そのうちの1つは赤、緑、リファクタリングです。最初にテストを書くこと、それをパスしてからコードをリファクタリングすることです。

  • 「赤」 - テスト
  • 「グリーン」を失敗書く - クラスが存在するが、可能性がなければならないことを、はい、あなたのコード

をクリーンアップ -

  • 「リファクタリング」テストパスを作りますテストも!

    で約いくつかの情報:このようなエラーを遭遇

  • 関連する問題