2

specflow 機能に継承を実装する方法を探しています。たとえば、テストする必要がある一般的なシナリオを持つ基本機能クラスの場合。

基本クラスのすべてのシナリオを継承し、独自のシナリオを追加する 3 ~ 4 個の派生フィーチャ クラス。同様に、Binding クラスも継承構造に従います。これは、基本コントローラー (基本機能クラスのシナリオ) と 4 ~ 5 個の実装を持つ ASP.NET MVC アプリケーションをテストするために必要です。

派生コントローラー クラスごとに機能ファイルをコピーできますが、かなりの重複が発生します。

これはspecflowで可能ですか、それとも間違ったルートをたどっていますか? 助けてください。ありがとう、

4

1 に答える 1

3

これが正しい道であるかどうかは 100% 確信が持てません (つまり、このようなことをする必要はありませんでした)。私にとって、継承と再利用は Step Definitions (または Binding) クラスで行われます。でもそれでも…

SpecFlow で利用可能なツールを使用してこれを簡単に実行できるかどうかはわかりませんが、私が見る限り、次のオプションがあります (これはテスト済みの理論ではありません... 後でテストするかもしれませんが、私は考えましたこれはあなたにアイデアを提供するかもしれません...)

  • フィーチャー ファイルの "コード ビハインド" (デザイナーが生成するコード) は、部分クラスの実装です...
  • ...だから、「ベース」(ジェネリック) 機能ファイルを作成できると思います...
  • ...次に、特定の/実装機能ファイルのコード ビハインドごとに部分クラス ファイルを作成します...
  • ...各部分クラスは、「基本」機能ファイルのコード ビハインドから生成されたクラス名である基本クラスを指定します。

うまくいけば、これは少し役に立ちます。

編集:わかりました、私はこの理論をテストしました...上で説明したように機能します。関連するテスト/仕様プロジェクトを含む新しいプロジェクトを作成し、テスト/仕様プロジェクトで上記を実行しました。テストランナーは基本機能を実行し、次に特定/実装機能を実行しました...これには基本機能が再び含まれていました。

試してみてください - 私が提案したものを 5 分もかからずにノックアップし、結果が要件に合っているかどうかを確認してください。

于 2012-08-28T16:19:49.050 に答える