2012-05-12 7 views
0

ウィザードには "ステップ"があり、各ステップには多数の "入力"テキストボックス、ラジオボタンリスト、チェックボックスリスト、ドロップダウン)。 +偽のデータを私のビューに渡すにはどうすればいいですか(テスト用のソート - ビューをテストしないことがわかります)

1)のロジックをワークアウト:

すべてが素晴らしい働いているが、私は今、ウィザードの私の最後の「提出」ステップの上にいくつかの計算を実行しようとしている、と私は二つのことを行う必要がありますb +(c * 2)など。これを "テスト"する必要はありません。if/else節の束があり、計算をマッピングしています。

2)上記を容易にし、出力(CSS/UIやものを含む)をかなり早く見るために、私はすべてのステップから偽のデータを渡したいと思います。これを最もうまくいく方法は?

私はそうMyModelが持っているかもしれませんが、モデル/のviewmodelsの束を使用しています:

public string FirstName { get; set; } 

MyViewModelが持っているでしょう:

public MyModel MyModel { get; set; } 

を、1つのビューモデルに引き込ま約10モデルがあります基本的に50以上の入力があります。私の問題は、「提出されました」という最終結果を見たい場合です。毎回ウィザードを通過する必要があります。

私はこの目的のためにスキップしたいと思いますが、ウィザード全体を通さずに偽のデータを渡してください(私のエントリーポイントは "Submit"ボタンがある "Confirm"ステップだと仮定します)。 「確認」をクリックして「送信」をクリックしてください(それ以外の場合は、「送信済み」ステップから開始することもできます)。あなたはユニットあなたは、これが取得アクションコントローラの確認にダミービューモデルを作成するために偽である可能性があり、このような方法テストしていないよう

答えて

0

に聞こえる:

var MyViewModel dummyModel; 

    var infoStepModel info; 
    info.property = xxx; 

    dummyModel.Property = XXX; 
    dummyModel.Property = 123; 
    dummyModel.infoStep = info; 

    return View(dummyModel); 

が次に設定にプロパティを変更しますポストロジックの各部分をテストする必要があります。すべての論理フローをテストするまで、実行ごとにプロパティを変更する必要があるため、少し遅くなります。

テストフレームワークがなければ、プログラムを実行し、説明したように各ステップを入力する必要があります。これで、少なくとも何度も何度も何度もやり直すことができます。確認のステップに進み、偽のデータを準備することができます。

さらに、コントローラーのポストアクションからロジックを移動し、モデルを取り込むクラスに移動すると、テストフレームワークを使用している場合に、これをより簡単にテストできます。コントローラを使用してデータを渡すだけで、おそらくクラス結果に応答して戻ってくるでしょう。

+0

ありがとうございます。すばやく簡単な実装のためにはうってつけです。現時点でそれほど多くのことを変更することをあまり心配していませんが、はい、テストフレームワークについて考える必要があります。私はプログラミングに慣れていないので、テストを追加することは、私がそれについてどうやって行くのか分からないので、圧倒的です。私は私の地平線に関するより多くの読書/研究を感知する。 :) – REMESQ

+0

正確にこれを助け、実装が比較的簡単なフレームワークを提案できますか? – REMESQ

+0

いくつかありますが、NUnitとXUnitはかなり人気があるようです。 MS TestもVSに直接焼き付けられます。 – klabranche

関連する問題