1

学習経験として、(handsoap gem を使用して) 既存の SOAP API/Web サービスにクエリを実行し、そこで収集された情報をユーザーに表示する小さな Rails アプリケーションを開発しています。

私は rspec を使用するのが好きで、アプリケーションをテストするためにキュウリに慣れてきました。私が困惑した部分は、API との対話をテストする方法です。つまり、XML 要求と応答をやり取りする際の「非表示」部分です。

ヒントや指針は大歓迎です!

ありがとう!

4

3 に答える 3

1

fakewebgemを見てください。

これは、ネットワークの相互運用性をスタブ化するのに役立ちます。つまり、テスト応答を作成できます。

  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
于 2009-07-06T09:42:55.633 に答える
0

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

于 2009-09-12T22:40:03.423 に答える
0

単体テストではなく、機能/統合スタイルのテストについて話していると思います。その場合、おそらく Web サービスのインターフェイスをモックし、コードを下位レベルで単体テストすることを検討します。

しかしキュウリに戻る。Aslak Hellesøy がStack Overflow q 810410で指摘しているように、これを行うことを妨げるものは何もありません。実際にテストする動作のシナリオを作成したら、ステップ定義で適切なオブジェクトをインスタンス化し、適切なメソッドを呼び出すだけです。必要に応じて、戻り値またはコンテンツに関するいくつかのアサートと組み合わせることもできます。cucumber で rspecをロードする方法については、Rspec の期待を参照してくださいshould()

于 2009-06-30T17:57:00.997 に答える