2011-01-19 18 views
5

私のレール3にカピバラとキュウリを使用しています。すべてがうまくいきます。しかし、私はテストがどのように働いているのか理解していません。キュウリカピバラの仕組み

私は標準的なキュウリの機能テストがあるとしましょう。私は@セレニウムなどを使用していません。それはプレーンなバニラ試験です。今すぐ実行するとき

bundle exec cucumber 

このレールサーバーはポートで起動しますか?はいの場合、ポート番号は何ですか?また、プレーンバニラの場合、カピバラはラックテストを使用します。ただし、ラックテストはサーバーの実行に責任を負いません。だから、私はすべてが全部どうやって動くのか混乱している。キュウリが果たしている役割。どのような職務遂行が行われているのか、そしてカピバラが何をしているのか。

記事へのリンクがある場合は、私と共有してください。私は本当に一緒に働いていることを知りたい。

答えて

5

私は実際にこの仕組みがどれほど深いのか分かりませんが、しかし、私はあなたにいくつかの視点を提供するのに十分です。

キュウリは、ルビー受け入れテストフレームワークであり、あなたは平易な英語で受け入れを書くことができます。一般的に、WebratやCapybaraの上に乗って真のパワー、すなわちSimulated BrowserやAutomated Browserのテストを提供します。

CapybaraまたはWebratは、受け入れテストを簡単に実行できます.Capybaraは、受け入れテストを実行するためにさまざまなドライバを使用するのが非常に簡単です。ドライバー、すなわちセレン、俊敏性またはラックテスト。バニラの場合、シミュレートされたブラウザテストにラックテストが使用されます。

Rack-Test自体は、テストを実行するセッションを作成する責任があります。ステップ定義などはcapybaraによって作成されています。したがって、基本的に、ラックテストによって作成されたちょうどセッション(厳密には模擬セッション)を実行するサーバーはありません。カピバラは、あなたが独自のステップ定義を作成するのに役立つように、ドライバによって作成されたこのセッションの先頭に、ファインダメソッドとマッチャーなどを提供します(ラックテストなど)。

キュウリは、セッション中のステップ、つまりファインダー/マッチャーなどをセッションで実行します。

+0

返信いただきありがとうございます。私の質問は、要求と応答がラックテストで嘲笑され、cucumber + capybaraがレールレイアウトとビューを含む応答データで実際のhtmlページにアクセスする方法です。 –

+0

本当に..それは単にブラウザセッションを基本的にはクッキーなどを模倣し、ラックを使ってリクエストを送信します。更新の回答 –

+0

私はラックテストのソースコードを見ました。そして、今私はより鮮明な絵を持っています。どうもありがとうございます。 –