問題タブ [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.

0 投票する
2 に答える
412 参照

c# - 保護されたオブジェクト C# (NMock および NUnit フレームワークを使用) を使用してコードの単体テストを作成するための良い方法は何ですか?

他のオブジェクトを含む単一のクラスの単体テストを作成する場合、使用する最良の方法は何ですか?

オブジェクトをモックして、他のクラスに依存するテストを回避します。

例 1:

コードの単体テストを作成するために保護された値を公開したくありません。ラッパークラスは

テスト用に動作しますが、より良い方法はありますか?

例 2:

上記の例と似ていますが、呼び出しているメソッドでオブジェクトが作成されます。

例 3:

デリゲートとしてのみ使用されている場合に MethodA をテストする方法はありますか?

0 投票する
2 に答える
1801 参照

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 クラス...

データアドレス クラス...

0 投票する
2 に答える
1155 参照

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でどのようにそれを行いますか?

0 投票する
1 に答える
617 参照

.net - ByRef パラメータでの NMock の使用

多くの参照パラメータを使用する API を使用する必要があります。私は NMock を使い始めたばかりで、NMock がこれらの by-ref パラメータの 1 つを特定の値に実際に変更する方法を理解するのに苦労しています。何か足りないのですか、それともそうではありませんか? この API をラップする以外に、より良い方法はありますか?

0 投票する
3 に答える
5916 参照

tdd - いつ期待し、いつスタブするか?

私はNMock2を使用しており、いくつかの一般的なモックフレームワークの概念を表すために次のNMockクラスを作成しました。

  • Expect:これは、モックされたメソッドが返すものを指定し、呼び出しが発生する必要があること、またはテストが失敗することを示します(への呼び出しが伴う場合VerifyAllExpectationsHaveBeenMet())。

  • Stub:これは、モックされたメソッドが返すものを指定しますが、テストを失敗させることはできません。

だから私はいつ何をすべきですか?

0 投票する
2 に答える
2045 参照

c# - NMock で GetType() メソッドをモックする方法

私はいくつかの生産コードを持っています

次に、このコードの単体テスト ケースを作成する必要があります。NMock を使用してオブジェクトを作成しています。したがって、2 つの異なるクラスのオブジェクトを渡すときは、else 部分に移動する必要があります。しかし、実際には両方のオブジェクトをモックしているので、GetType() は両方のオブジェクトの MockObject タイプを返します。どうすればこの問題を解決できますか。

0 投票する
4 に答える
11889 参照

.net - 非同期メソッドを単体テストする方法はありますか?

.NET プラットフォームで Xunit と NMock を使用しています。メソッドが非同期のプレゼンテーション モデルをテストしています。メソッドは非同期タスクを作成して実行するため、メソッドはすぐに戻り、確認する必要がある状態はまだ準備ができていません。

SUT を変更せずに終了時にフラグを設定することはできますが、それは、おそらくタイムアウトを使用して、たとえば while ループでフラグをチェックし続ける必要があることを意味します。

私のオプションは何ですか?

0 投票する
1 に答える
1583 参照

c# - リストに関する NMock の問題

失敗するNMockを使用した次のテストがあります。サービス呼び出しの結果がビューに渡されたときに機能していましたが、結果が dto に変換されるため、現在は失敗しています。

これは、カスタムマッチャーを作成する必要があることを意味していると思いますが、よくわかりません。誰にもアイデアはありますか?

エラーメッセージ:

予想: 1 回: projectView.SetProjects(equal to) [0 回呼び出される] 。

コード:

0 投票する
2 に答える
2605 参照

unit-testing - NMock - これらのパラメーターで「任意の値」を期待すると言う方法は? または、これを行うべきではありませんか?

NMock2.0 に関するドキュメントではわからなかった簡単な質問があります。

モックアウトしたい Save() という関数があります。これは、文字列 ID をパラメーターとして取り、10 進数を値として取ります。

Save() が2つの特定の値で呼び出されることを確認するためにこれを書くことができることを私は知っています:

ただし、これは「foo」と 1 が渡された場合にのみ渡されます。値「foo」を制御できますが、2 番目の値については、それがどうなるかわかりません。または、少なくともこの特定のテストで値がどうなるかをテストすることは気にしません。

私は書くことができることを知っています:

しかし、これにより、私はあらゆる議論を渡すことができます。そのため、保存インターフェイスが変更され、後で 5 つのパラメーターを受け取る場合でも、テストはパスします。

適切なタイプの2つのパラメーターのみを受け取るようにするにはどうすればよいですか?

おそらくもっと重要なことですが、このような単体テストを書くのは脆すぎますか? たぶん、パラメータを期待するようにコーディングして、リファクタリングするたびに戻ってその行を変更する必要がないようにする必要がありますか? 多くのモックを使用するテスト ケースは非常に脆弱であり、リファクタリングするたびにそれらを変更する必要があることがわかりました...ここでモックを誤用しているのでしょうか? このようなことはまだかなり新しいので、アドバイスをいただければ幸いです。

0 投票する
2 に答える
1187 参照

c# - NMock2.0とNMock2の違い

どのバージョンのNMock2を使用すべきかについて少し混乱しています。私がここから得たもの:私がしばらく使っていたもの:

http://www.nmock.org/download.html

ファイル名は、バージョン2.0.0.44のNMock2.dllです。

ジェネリック関数を含むインターフェースをモックできないという問題に遭遇しました。グーグルで簡単に検索したところ、NMock2はジェネリック関数とのモックインターフェイスをサポートしていることがわかりました。

ここから別のNMock2を使用する必要がありました。

http://sourceforge.net/projects/nmock2/

このバージョン(NMock.dll 2.1.3641.19651)は、実際にジェネリック関数とのインターフェイスをサポートしており、他のバージョンとほとんど互換性があります。これまでのところ、関数には微妙な違いがあることがわかりましWill()た。関数がないvoid場合は、に渡す必要がReturn.Value(something)ありますWill()

ここで問題にいくつかの光が当てられました:

http://codelog.blogial.com/2009/08/19/using-nmock2-in-c/#comment-4355

最新かつ最高のNMock2をご覧になりたい場合は、 http: //sourceforge.net/projects/nmock2にアクセスしてください。名前に2が含まれているもの。

nmockサイトのバージョン(残念ながら、私たちの管理下にはありません)はもう維持されていません。

したがって、質問は次のとおりです。後者のNMock2(2.1)はNMock 2.0の次のバージョンであり、(現在サポートされている唯一のnmockであるという点で)合法であり、nmock.orgにあるものの代わりにそれを使用する必要があります。 ?