0

1ページのアプリに対してエンドツーエンドのスモークテストを実行しようとしていますが、次のことに固執しています。

  • アプリは一連のHTMLページとして実行され、サーバー側のコードはありません(ページを提供するためにローカルでApacheを実行しています)。

  • API呼び出しは/api/ blahに対するものであり、現在httpd.confにエイリアスがあり、/ api / blah呼び出しを適切なサーバーAPI(www.example.com/api/blah)にリダイレクトしています。

  • APIにはSSO要件があるため、機能テスト中に実際のAPIを呼び出さないようにします。

私はローカルでキュウリをセットアップし、watir-webdriverがブラウザーコントロールを処理しています。初期状態でいくつかのテストを実行していますが、プロジェクトで保存したダミーのJSONを使用してAPIへの呼び出しをモックアウトしたいと思います。

テストは、最終的にTeamCityCIサーバーで実行されます。

WebMockとFakeWebを使用してみましたが、サーバーサイドコールを探しています。そのため、アプリからのajaxコールは、傍受できるものにヒットすることはありません。

また、jsTestDriverを使用してサーバーを起動し、それをモックアウトすることも検討しましたが、2つを接続することはできません。

これに対する解決策はありますか、または誰かがこの問題を抱えて確実に解決したことがありますか?

4

1 に答える 1

1

これを解決する方法はいくつかあります。

  1. Cucumber と一緒に JSON フィクスチャを提供する小さな HTTP サーバー プロセスを開始し、機能スイートの読み込みが完了したらシャットダウンすることができます。これは、Ruby/Node.js/好きなもので記述できます。

    API ベース URI を構成可能にして、Cucumber によって自動化されたときにこの小さなテスト サーバーと対話し、実稼働環境で実際のものを呼び出すようにしたいと思うでしょう。

  2. XMLHttpRequest をスタブし (API 呼び出しに使用している場合)、そこからフィクスチャを返します。

#1に行きます:偽造された「/ api/blah」パスの代わりにベースURIを構成可能にし、基本的なHTTPサーバーを介して仕様で必要なものを提供します。

于 2012-09-17T08:08:47.613 に答える