問題タブ [nmock]
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.
c# - 保護されたオブジェクト C# (NMock および NUnit フレームワークを使用) を使用してコードの単体テストを作成するための良い方法は何ですか?
他のオブジェクトを含む単一のクラスの単体テストを作成する場合、使用する最良の方法は何ですか?
オブジェクトをモックして、他のクラスに依存するテストを回避します。
例 1:
コードの単体テストを作成するために保護された値を公開したくありません。ラッパークラスは
テスト用に動作しますが、より良い方法はありますか?
例 2:
上記の例と似ていますが、呼び出しているメソッドでオブジェクトが作成されます。
例 3:
デリゲートとしてのみ使用されている場合に MethodA をテストする方法はありますか?
c# - 継承されたオブジェクトのプロパティで nMock GetProperty ルーチンを使用できません
MembershipUser から継承するモックしたオブジェクトに期待値を設定しようとすると、次のエラーが発生します。
ContactRepositoryTests.UpdateTest : FailedSystem.InvalidProgramException: JIT コンパイラで内部制限が発生しました。
サーバー スタック トレース: MockObjectType1.ToString() で
[0] で例外が再スローされました: System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) で.ToString() at NMock2.Internal.ExpectationBuilder.On(オブジェクト レシーバー)
ここに私が使用しているツールがあります...
VS2008 (SP1) フレームワーク 3.5 nUnit 2.4.8 nMock 2.0.0.44 Resharper 4.1
なぜこのようなことが起こるのか途方に暮れています。どんな助けでも大歓迎です。
テストクラス...
ユーザー クラス...
アドレス クラス...
AddressRepository クラス...
データアドレス クラス...
c# - C#Noob-モックされたインターフェイスクラスでイベントをトリガーする-このコードはどのように機能しますか?
ここで何が起こっているのか少し混乱しています。Model-View-PresenterパターンPuzzle.zipをテストする方法を示すAtomicObjectのパズルの例を見ています。
ビューにはプライベートイベントがあります。ビューには、イベントにデリゲートを追加するSubscribe(delegate)関数もあります。プレゼンターはIViewとIModelで渡されます。構築中に、ビューをサブスクライブし、モデル上の関数に接続します。
プレゼンターの単体テストでは、ViewクラスはNMockを使用してモックされます。したがって、これは単なるダムクラスであり、Subscribe()関数は実際には何もしません。もちろん、プレゼンターをテストするには、ビューとモデルをモックアップしてから、ビューでイベントをトリガーし、モデル関数が呼び出されたことを確認する必要があります。サンプルコードは問題なく動作しますが、どのように動作するのかわかりません!!
いくつかの抜粋:
どういうわけか、「trigger(point)」呼び出しは実際にビューに接続されており、ビュー内のプライベートイベントをトリガーしています。これがどのように機能しているかわかりません-ビューインスタンスに接続されている場所がわかりません。私は何が欠けていますか?
更新: NMock 2を使用しようとしています。moveRequestConstraint変数は、TestSetup関数のSubscribeMoveRequest()に渡される値を受け取っているようです。ただし、これはNMock 1構文であり、NMock2はその構文をサポートしていないようです。NMock 2でどのようにそれを行いますか?
.net - ByRef パラメータでの NMock の使用
多くの参照パラメータを使用する API を使用する必要があります。私は NMock を使い始めたばかりで、NMock がこれらの by-ref パラメータの 1 つを特定の値に実際に変更する方法を理解するのに苦労しています。何か足りないのですか、それともそうではありませんか? この API をラップする以外に、より良い方法はありますか?
tdd - いつ期待し、いつスタブするか?
私はNMock2を使用しており、いくつかの一般的なモックフレームワークの概念を表すために次のNMockクラスを作成しました。
Expect
:これは、モックされたメソッドが返すものを指定し、呼び出しが発生する必要があること、またはテストが失敗することを示します(への呼び出しが伴う場合VerifyAllExpectationsHaveBeenMet()
)。Stub
:これは、モックされたメソッドが返すものを指定しますが、テストを失敗させることはできません。
だから私はいつ何をすべきですか?
c# - NMock で GetType() メソッドをモックする方法
私はいくつかの生産コードを持っています
次に、このコードの単体テスト ケースを作成する必要があります。NMock を使用してオブジェクトを作成しています。したがって、2 つの異なるクラスのオブジェクトを渡すときは、else 部分に移動する必要があります。しかし、実際には両方のオブジェクトをモックしているので、GetType() は両方のオブジェクトの MockObject タイプを返します。どうすればこの問題を解決できますか。
.net - 非同期メソッドを単体テストする方法はありますか?
.NET プラットフォームで Xunit と NMock を使用しています。メソッドが非同期のプレゼンテーション モデルをテストしています。メソッドは非同期タスクを作成して実行するため、メソッドはすぐに戻り、確認する必要がある状態はまだ準備ができていません。
SUT を変更せずに終了時にフラグを設定することはできますが、それは、おそらくタイムアウトを使用して、たとえば while ループでフラグをチェックし続ける必要があることを意味します。
私のオプションは何ですか?
c# - リストに関する NMock の問題
失敗するNMockを使用した次のテストがあります。サービス呼び出しの結果がビューに渡されたときに機能していましたが、結果が dto に変換されるため、現在は失敗しています。
これは、カスタムマッチャーを作成する必要があることを意味していると思いますが、よくわかりません。誰にもアイデアはありますか?
エラーメッセージ:
予想: 1 回: projectView.SetProjects(equal to) [0 回呼び出される] 。
コード:
unit-testing - NMock - これらのパラメーターで「任意の値」を期待すると言う方法は? または、これを行うべきではありませんか?
NMock2.0 に関するドキュメントではわからなかった簡単な質問があります。
モックアウトしたい Save() という関数があります。これは、文字列 ID をパラメーターとして取り、10 進数を値として取ります。
Save() が2つの特定の値で呼び出されることを確認するためにこれを書くことができることを私は知っています:
ただし、これは「foo」と 1 が渡された場合にのみ渡されます。値「foo」を制御できますが、2 番目の値については、それがどうなるかわかりません。または、少なくともこの特定のテストで値がどうなるかをテストすることは気にしません。
私は書くことができることを知っています:
しかし、これにより、私はあらゆる議論を渡すことができます。そのため、保存インターフェイスが変更され、後で 5 つのパラメーターを受け取る場合でも、テストはパスします。
適切なタイプの2つのパラメーターのみを受け取るようにするにはどうすればよいですか?
おそらくもっと重要なことですが、このような単体テストを書くのは脆すぎますか? たぶん、パラメータを期待するようにコーディングして、リファクタリングするたびに戻ってその行を変更する必要がないようにする必要がありますか? 多くのモックを使用するテスト ケースは非常に脆弱であり、リファクタリングするたびにそれらを変更する必要があることがわかりました...ここでモックを誤用しているのでしょうか? このようなことはまだかなり新しいので、アドバイスをいただければ幸いです。