2011-08-10 8 views
0

は、私はこのように行くかもしれない顧客の機能を追加記述した場合:specflow機能はasp.net webformsプロジェクトの単体テストにどのようにリンクしますか?たとえば、

シナリオ:私は私が を追加押し、私が見るべきである、名前 ログイン入力しますお客様のページ の午前考える顧客 を追加します。新しく追加された顧客確認メッセージ

私は、ブラウザを開いて顧客ページに行くためにコードを書き始めます。 この時点では存在しません。

質問: 1)私はユニットテストに飛びつき、存在しないページの単体テストを書くのですか? MVCではこれがコントローラになりますが、asp.net webformsではステップ定義にあるのと同じテストです。 2)単体テストはステップ定義とどのように結びついていますか?プロジェクトの最後には、機能の負荷と単体テストの負荷があるとしましょう。それで、もし私がそれを見れば、どのユニットテストがそれに対応しているのか分かりますか?それともこれは問題なのでしょうか?

これがベストプラクティスの質問であるか、それとも人の気持ちが正しいかはわかりません。

ありがとうございます。

答えて

1

specflow(とキュウリ...)のクールなことの1つは、ページが存在する前にテストを書くことができることです。だから私がやることはまさにあなたがやろうとしていたことです。

1)ページの操作方法を説明するspecflowテストを作成します。あなたはすでにそれを持っているように見えます。 2)テストを実行します。最初の行は失敗します(私が顧客ページにいると仮定すると)。

これで選択肢があります。あなたはwatinを起動して顧客ページに移動するコードを書くのに苦労しますか?さて、それをしてください。顧客のページを書きます(テストの最初の行が通過するように十分に)。

または、お客様のテストにお客様のページが必要であることを認識してください。テストする場所がたくさんあります:すべてのデータフィールドは存在しますか?ページは入力の検証を正しく行いますか?サーバーに投稿すると、正しい応答が得られますか?サーバーに投稿すると、DBは正しく更新されますか?等々。これらは、単体テスト(フォームデータをDBに格納するビジネスロジック)のようなものです。 SpecFlow(ページの詳細、検証)と統合テスト(おそらくspecflowで良い)のようないくつかのサウンドで良いだろうUIテストのようないくつかのサウンド。あなたはすべてのそれらを書いたし、彼らは、(...私はクリック)ように

そして、バックあなたの元のテストに移動し、第2のステップは合格して取得渡したら

2番目の質問に答えるには、単体テストとspe​​cflowテストを実行していることをお勧めします。テストが失敗した場合は、ここ数分間行ったことが原因です。何が失敗したかを見て、それをあなたがやったことと一致させることは、あまりにも難しいことではありません。

あなたが頻繁にテストを実行していない場合、うまくいくはずです。

+0

返事ありがとう、誰かが私の質問を見ていたのだろうかと思っていた:)。あなたが何を意味するのかよく分からないときは、私がテストをパスするまで進んだと思う度にテストを実行します。私はより頻繁に実行する必要がありますか?私がCIサーバで頻繁に使っていたことがあるのであれば、この設定はまだありませんので、私は言うことはできませんが、単体テストとUIテストがリンクされているかどうかは関係ありません。問題のコードに関係なく。それは本当に、別の開発者が特定の機能のために書いたすべての単体テストを見つける方法の問題です。 – codeAline

関連する問題