0

最近mvc 4に移行して、開発中に「カンマを変更してブラウザを更新して動作するかどうかを確認する」タイプの状況を高速化する方法があるかどうか疑問に思っています.

プロとして 10 年以上プログラミングを続けてきた私には、ある習慣が身につきました。私は主にasp.net Webサイトプロジェクト、Webフォームを使用してきました。これにより、コードビハインド、ctrl + s、alt-tabをブラウザに変更し、f5を押して結果を確認できます。常にではありませんが、アプリケーションがリサイクルされ、セッションが破棄され、ログイン ページに戻ることがあります。

学習による mvc 4 プロジェクトに取り組んでいますが、コンパイル サイクルに少し不満を感じています。

例として、ファイルの移動とコピーを処理するアクションを書いているとしましょう。

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = HostingEnvironment.MapPath(Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/"))));

これは正常にコンパイルされますが、「rootpath」はすでに絶対パスであり、再度マップできないため、テストすると例外がスローされます。コードを次のように変更します

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/")));

また、正常にコンパイルされ、おそらく実際に動作します。ただし、「私が書いていたもの」の瞬間の1つがあり、それを次のように変更します

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = Path.Combine(rootpath, Path.GetDirectoryName(TargetDir));

今のところ大丈夫です。

Web サイト プロジェクトでの開発と比較すると、コードの変更、コンパイルの待機、ブラウザーの更新、ログイン、機能のテスト (およびその繰り返し) の手順は、以前よりもはるかに長くかかるようです。このような試行錯誤の状況をスピードアップする方法はありますか? それとも、単に間違っていますか?

4

1 に答える 1

2

まったく異なるアプローチを提案します。単体テストを使用します。

MVC の大きな利点は、基本的にすべてのコード (コントローラー、モデルなど) を単体テストできることです。このようにして、変更のたびに単一または一連の単体テストを実行するだけです (Ctrl+R、Ctrl+L などのキーボード ショートカット、または類似のキーワードは、最大速度を得るために親友です :-) )。

最後に、完全なプロジェクトを実行して最終的な出力を確認します。

もちろん、開発/デバッグ時間を短縮する以外にも、開発中 (コードのより良い設計のため) や回帰テストに非常に役立つ完全なテストスイートの恩恵を受けることができます。

于 2013-10-13T09:08:52.767 に答える