0

一連の「ステップ」を備えたウィザードがあり、各ステップには一連の「入力」(テキストボックス、ラジオボタンリスト、チェックボックスリスト、ドロップダウン) があります。

すべてがうまく機能していますが、ウィザードの最後の「送信済み」ステップでいくつかの計算を実行しようとしています。次の 2 つのことを行う必要があります。

1) a+b+(c*2) などのロジックを計算します。これを「テスト」する必要はありません。if/else 句がたくさんあり、計算をマッピングしているだけです。

2)上記を容易にし、出力(CSS / UIなどを含む)をかなり迅速に表示するために、すべてのステップから偽のデータを渡したい. これを行うにはどうすればよいですか?

私は一連のモデル/ビューモデルを使用しているため、次のMyModel可能性があります。

public string FirstName { get; set; }

そして次のMyViewModelようになります:

public MyModel MyModel { get; set; }

現在、1 つのビュー モデルに約 10 個のモデルが取り込まれており、基本的には 50 以上の入力があります。私の問題は、「送信済み」の最終結果を見たい場合、毎回ウィザードを実行する必要があることです。

この目的のために、それをスキップして、ウィザード全体を通過せずに偽のデータを渡したいと思います (エントリ ポイントは、「送信」ボタンがある「確認」ステップであると仮定します。「」から始めたいと思います)。確認」してから「送信」をクリックします(そうでない場合は、「送信済み」のステップから始めることができます)。

4

1 に答える 1

0

これを単体テストしていないように聞こえるので、これを偽造する方法は、コントローラーの確認取得アクションでダミーのビューモデルを作成することです。

    var MyViewModel dummyModel;

    var infoStepModel info;
    info.property = xxx;

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

    return View(dummyModel);

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

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

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

于 2012-05-12T16:50:50.130 に答える