問題タブ [mvccontrib-testhelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2010 - MsTestでMVCContrib.TestHelpersを使用する-より良い失敗メッセージを取得する方法はありますか?
私はMVCContribを使い始めたばかりで、さまざまなテストシナリオに追加される構文糖衣が本当に気に入っています。たとえば、私はこのアサーションを書いたばかりです。
すばらしい!よくほとんど...
代わりに、必要に応じて、テストが失敗する実際の理由を確認します(MVCアプリケーションで何も変更していないため、にルーティングする必要がありHomeController.Index()
ます)。テストの実行中に例外がスローされたという一般的なメッセージが表示されます。これは、MVCContribのテスト拡張メソッドが正しく(?)をスローするため、デバッグ時に見つかりますAssertionException
。
MsTestのバージョンがであるのに対し、これはNUnitタイプの障害例外であると思いますAssertFailedException
。NUnitバージョンは(明らかに)MsTestバージョンを継承していないため、VSのテストランナーは例外をキャッチせず、素晴らしいメッセージを表示します。
MVCContrib.TestHelpersの半分を書き直すことなく、MsTestにAssertFailedExceptionsと同様の方法でAssertionExceptionsを処理させる方法はありますか?
私はローカルの作業コピーにソースコードを持っているので、そこに行ってテストメソッドを書き直して、代わりにMsTest例外をスローすることができますが、それは極端なやり過ぎのようです...
更新:この問題はほとんどのモックフレームワークでも発生するため、NUnitだけでなく、Moqやその他
のフレームワークでもこれを実行したいと思います...それは不可能ですか?AssertionException
VerificationException
unit-testing - TestHelper で T4MVC を使用する場合、レンダリングされたビューをテストするにはどうすればよいですか?
取得したものが T4MVC_ActionResult である場合、コントローラー アクションからレンダリングされたビューをテストするにはどうすればよいですか? 通常の状況では、例のように TestHelper のメソッドを直接使用できるはずです。
...しかし、T4MVC を介して ViewResult ではなく T4MVC_ActionResult を取得するため、この部分AssertViewRendered<>().ForView("Details")
は失敗します。どのビューが呼び出されたかをテストしたい場合、どのような代替手段がありますか?
アップデート:
テストコードは次のとおりです。
行の後にブレークポイントを設定するデバッガーを使用しました。result
その変数の型は T4MVC_ActionResult で、themeController はEvalgrid.Website.controllers.ThemeController
. コントローラーの完全修飾名を使用したことに注意してください。
私はこれを得る:
予想される結果は、ViewResult 型である必要があります。実際には T4MVC_ActionResult 型です。
何が起こっているのかわかりません。
mvccontrib - 不足しているドキュメント:MVCContribUI-テスト
MvcContrib.TestHelper.UiとWatinDriverの使用方法に関するドキュメントや例はありますか?
c# - asp.netmvcでのmvcContrib流暢なルートテストに関する問題
MVCContribFluentルートテストを使用したルートのテストに問題があります。テストは失敗しますが、アプリケーションはルートを認識します。
説明させてください…。
私の登録簿には次のルートがあります(順番に表示されています)
ルーティングパイプラインは、ルート1のインデックスとルート2の表示にリクエストを正しく送信します。
ただし、MVCContrib流暢なクラスを使用してルーティングをテストすると、ルート1のテストが失敗します。
テストは次のとおりです。
期待値はIndexですが、実際はShowであるため、テストは失敗します。
流暢なクラスが正しいルーティングを識別していないのに、MVCルーティングが実際のアプリケーションで機能する理由についてのアイデアはありますか?または、完全にテストできるようにテストまたはルートを微調整する方法についての提案に失敗しましたか?
asp.net-mvc-2 - MvcContrib TestHelper Fluent Route テストと特定の HttpVerbs に関する問題
MvcContrib TestHelper fluent ルート テスト API を使用しようとしていますが、奇妙な動作が見られます。.WithMethod(HttpVerb) 拡張メソッドが期待どおりに実行されていないようです。異なる HttpVerbs を受け入れる (2) アクション (同じ名前) を示すコントローラーを次に示します。
[HttpPost] 属性を使用してアクションにマップする必要があるテストは次のとおりです。
私のテストでは POST HttpVerb が指定されていますが、常に HttpGet メソッドにルーティングされます。 コントローラーで HttpPost を受け入れるアクションをコメントアウトしても、テスト パスを取得できます。
私がここに欠けているものはありますか?
asp.net-mvc - ASP.NET MVC 2:ビューとコントローラーで何をテストするか
私はMVCcontribとRhinoモックでMVC2を使用しています。
私は助けを必要としています。辛い週末でした。私は、MVCcontribを使用してコントローラーでテストを行う方法に関する優れた記事を探しています。そして、誰も私にまともな答えを持っていません。ビューとコントローラーで何をテストする必要があるのか知りたいですか?これは単体テストですか、それとも統合テストですか?
基本的なシナリオを説明しましょう。グリッドが表示されたインデックスビューがあります。このグリッドには、ニュースアイテムのリストがあります。このグリッドのすべての行の最後の列には、選択したニュース項目を編集するためにユーザーをEditNewsビューに移動する[編集]リンクがあります。また、このインデックスビューには、ユーザーをCreateNewsビューに移動する[ニュースの追加]ボタンがあります。
現在のシナリオを考えると、どのようなテストを作成する必要がありますか?ユニットテストなのか統合テストなのかを教えてください。編集リンクのテストを作成する必要がありますか?[ニュースの追加]ボタンのテストを作成する必要がありますか?ユーザーがこのインデックスページで許可されているかどうかを確認するためのテストを作成する必要がありますか?これは私が現在持っているものです:
更新:これが私のインデックスアクションメソッドです:
まともな記事やサンプルコードをいただければ幸いです。また、MVC contribでは、コードサンプルはあまり役に立ちません。できるだけ多くのご意見を伺いたいと思います。
ありがとう。
unit-testing - MvcContribTestHelperを使用してセッションをNullに設定します
コントローラーに、セッションの有効期限が切れているかどうか(== null)を確認するアクションがあり、有効期限が切れている場合は、ログインにリダイレクトします。このための単体テストを追加したいのですが、セッションをnullに設定することも、モックすることもできません。誰もが私がそれを行うことができる方法を知っています、そしてそれをテストするのが良い考えであるかどうか?
これが私のコントローラーのアクションです:
そして、セッションをモックするためのすべての試みでの私のテスト
しかし、何も機能していません...
ありがとうございました!
c# - AssertViewRendered を使用すると、MvcContrib TestHelper で奇妙なエラーが発生する
MvcContrib テスト ヘルパーを使用して、MVC3 のコントローラー メソッドをテストしようとしています。
コントローラー:
テスト:
エラー:
テスト メソッド Tests.Web.Controllers.HomeControllerTests.Index が例外をスローしました: MvcContrib.TestHelper.ActionResultAssertionException: 予想される結果は ViewResult 型である必要があります。実際には ViewResult 型です。
何か案は?
c#-4.0 - 保護されたメモリの読み取りまたは書き込みを試みました
JonathanMcCrackenのTest-DriveAsp.NETMVC(ちなみに素晴らしい本)に続くサンプルASP.NET MVC 3 Webアプリケーションがあり、問題に遭遇しました。MVCContrib、Rhino、NUnitを使用していることに注意してください。
上記のコードは常にこのエラーをスローします:
System.AccessViolationException:保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています。
コントローラのアクションコードは次のとおりです。
私が理解したところによると、コントローラーアクションに2つの割り当てがあるため、アプリがクラッシュしているようです。しかし、どうして間違っているのかわかりません!?
誰かが私がこの問題の解決策を特定するのを手伝ってくれますか?
ありがとうございました。
編集1
私は問題が何であるかを見るためにいくつかの実験をしました。ViewData,Model
割り当てを削除すると、問題はで超越しExpected result to be of type ViewResult. It is actually of type ViewResult.
ます。割り当ては非常に基本的であるため、ViewData
問題とは思わないので、MVC3と組み合わせたRhinoまたはMVCcontribのいずれかに問題があると思います。
同じコントローラーアクションについて、以前に作成した次のテストもあります。
System.NullReferenceException : Object reference not set to an instance of an object
この特定のテスト用にHttpContextが設定されていないため、これは失敗します。割り当てを削除するときViewBag
は、すべて問題ありません。
それが問題をより明確にすることを願っています。
編集2
割り当てを削除した後にコードをデバッグすると、ViewData.Model
割り当てで別のエラーがスローSystem.NullReferenceException : Object reference not set to an instance of an object.
されますViewBag
。
asp.net-mvc - PerWebRequestLifeStyle依存関係を持つユニットテストコントローラー
ライフスタイルが「PerWebRequest」であるタイプに依存するコントローラーの単体テストを作成しようとしています。
Castleは次の例外をスローします。
System.InvalidOperationException:HttpContext.Currentがnullです。PerWebRequestLifestyleは、ASP.Netでのみ使用できます。
これを回避するために、なんとかしてHttpContext.Currentプロパティをモックできますか?
MVCContribのTestControllerBuilderを使用してこのコントローラーを初期化しようとしましたが、効果がありません。