2009-06-24 17 views
1

私は学習経験として、既存のSOAP API/Webサービス(handsoap gemを使用して)を照会する予定の小さなRailsアプリケーションを開発しています。そこにユーザーに集まった。キュウリとRspecを使ってBDDを使ってSOAPクライアントを開発する

私はrspecの使用が好きで、私のアプリケーションをテストするためにキュウリに慣れています。私が困惑している部分は、APIとのやり取りをテストする方法です。すなわち、XMLリクエストとレスポンスを前後に渡すという「非提示」の部分です。

ヒントとポインタは非常に高く評価されています!

ありがとうございます!

答えて

0

私はあなたが機能/統合スタイルのテストについて話していると仮定しています。その場合、おそらくWebサービスのインターフェイスを嘲笑し、ユニットを下位レベルでテストすることを検討するでしょう。

しかし、キュウリに戻る。 AslakHellesøyがStack overflow q 810410に指摘しているように、あなたがこれをやるのを妨げるものは何もありません。実際にテストする動作のシナリオを記述したら、ステップ定義で適切なオブジェクトをインスタンス化し、適切なメソッドを呼び出すだけで済みます。可能であれば、戻り値や内容についていくつかのアサーションと組み合わせることも可能です。 rspecのshould()にキュウリをロードする方法については、Rspec expectationsを参照してください。

1

fakeweb gemをご覧ください。

それはあなたがテスト応答を作成することができ、すなわち、ネットワークの相互運用性、 をスタブするのに役立ちます:

FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!") 

をしてHTTPリクエストを送信する機能を無効にします。

FakeWeb.allow_net_connect = false 
    Net::HTTP.get(URI.parse("http://example.com/")) 
    => raises FakeWeb::NetConnectNotAllowedError 
0

Handsoapの最新バージョンでは、することができますモックhttpドライバを使用して、httpレベルでモックアウトします。参照:Http::HttpMock、例:tests/account_test.rb

関連する問題