ASP.NET MVCアプリケーションのメニュー用のURLは、コントローラ/アクションから生成されます。だから、彼らは電話するASP.NET MVC:モックコントローラ.Url.Action
controller.Url.Action(action, controller)
今、私は単体テストでこの作品を作るのですか? は私が
var controller = new TestControllerBuilder().CreateController<OrdersController>();
で正常MVCContribを使用するが、私はcontroller.Url.Action(アクション、コントローラは)URL == nullであるためとNullReferenceExceptionで失敗し得るものは何でも、私はそれをやってみてください。
更新:HttpContextを傍受する方法ではありません。私は、MVCContrib、Scott Hanselmanの偽造の例、そしてhttp://stephenwalther.com/blog/archive/2008/07/01/asp-net-mvc-tip-12-faking-the-controller-context.aspxからのものを使用して、いくつかの方法でこれを行いました。これは、私が偽の値を知る必要があるので、私を助けません...それはApplicationPathですか?どうすれば設定できますか?呼び出されたコントローラ/アクションと一致する必要がありますか?つまり、Url.Actionはどのように動作し、どのようにそれを満足させるのですか?
また、私はIUrlActionAbstractionを実行してそのことを知ることができると知っています...しかし、私はこれをやりたいとは思っていません。結局のところ、私はMVCContrib/Mockフルパワーを持っています。なぜ別の抽象化が必要なのでしょうか?
テストスイートは何ですか? –
それだけで答えは価値がないので、私は同様の答えを指します:http://bit.ly/aSJ0a –
はい私はそのリンクを使用し、それは動作しませんでした。実際に私はScottのバージョンとMVCContribの両方を試しました。私が理解しようとしていることは、どのような値を設定する必要があるかです。 Url.Action()は実際に何を使用していますか?私。あなたが提供したリンクには、多くの変数を設定するMoqのバージョンがあります...それらのすべてが必要ですか?私は運がなければそれらのすべてを試しました。 – queen3