2017-02-01 4 views
1

これは私の初めてのキュウリでの試合です。私の質問は、APIのテストが実行される必要があるときです。私は私の頭の中でこれを持っているたとえば残りのAPIまたはグラフSQL APIをテストするときにキュウリのテストを実行するには

  • そして、それが起動したときに、バックグラウンドタスクとして

    • スタート特急サーバー(それが起こった場合、私は知っているだろうか?)そして、キュウリ試験をする?

    私は実際にこれに関するベストプラクティスを知らない。ここで私は主な問題は残念だと思います。

    .travis.ymlファイルまたはbashスクリプトを参照すると便利です。

  • 答えて

    2

    私はあなたに実用的な例を提供することはできません。しかし、私はどのように問題に近づくかを概説することができます。

    あなたの目標は、残りのAPIまたは同様のものの検証を自動化することです。つまり、特定の質問があれば、Webアプリケーションが期待どおりに応答することを確認します。

    何らかの理由で、キュウリを使用します。

    最初に私が言いたいのは、Behavior-Driven Development、BDD、およびCucumberはテストツールではないということです。 BDDとキュウリの目的は、システムが何をすべきかを知っている人、それを実現するコードを書く人、そして行動を検証する人の間のコミュニケーションツールとしての役割を果たすことです。だからこそ、この例はほとんど自然言語で書かれています。

    どうすれば問題に近づきますか?

    • 私は単体テストまたはキュウリのシナリオからAPIを構成するメソッドを呼び出すことによって、動作の大部分を検証します。つまり、実行中のサーバーがなくても正常に動作することを確認します。データベースなし。これは速く、スピードは重要です。おそらくこの方法で論理の90%以上を検証するでしょう。

    • サーバーを起動して配線を確認し、前の手順で確認した方法に到達できることを確認します。これは遅いので、私はここでできるだけやりません。可能であれば、検証を実装するために使用されたコードからサーバーを起動します。私はテストセットアップの一環としてサーバーを起動します。

    これには外部ツールは含まれませんでした。あなたのプログラミング言語といくつかのライブラリだけを含んでいました。このようにするのは、できるだけポータブルにしたいからです。使用するツールが少なければ少ないほど、簡単に作業できます。

    私は自分のビルドツールでいくつかの設定を行い、統合テストを実行する前にサーバーを起動していたことがありました。これは通常、より重いものであり、可能な場合は避けるものです。

    したがって、サーバーなしで動作を確認してください。サーバーとの配線を確認します。このステップでは、配線のみを確認することが重要です。ロジックは以前に検証されており、繰り返す必要はありません。

    速いフィードバックループのように、速度は非常に重要です。良い世界では、システム全体を構築しテストすることは、数分ではなく数秒かかる。

    +0

    あなたの時間を取ってくれてありがとう、本当に素晴らしい答えです:) –

    1

    あなたが興味があれば(トラビスで走っている)私はworking exampleです。 私はdocker-composeを使用してデータベースなどの必要なコンポーネントを&で起動し、実行中のスタックに対してcucumber-jsテストを実行します。

    docker-composeは、ローカル開発&のテストにも使用されます。

    また、キュウリのAPIの作成に役立つライブラリ、https://github.com/ekino/veggiesも公開しました。

    +0

    非常に興味深い、私は見ています。 –

    関連する問題