問題タブ [nsubstitute]

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 投票する
1 に答える
246 参照

nsubstitute - NSubstitute 受信文字列の不一致

誰が問題が何であるかを見ることができますか? 私には、文字列は同一に見えますが、それらは同じオブジェクト プロパティから来ています。

これが失敗する理由についての情報をいただければ幸いです。

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

nsubstitute - 複数の呼び出しに応答する NSubstitute Received()

2 回呼び出されるメソッドを持つ NSubstitute で偽造したオブジェクトがあります。メソッドが実際に 2 回 (そして 2 回だけ) 呼び出されていることを確認したいと思います。ドキュメントと Google を調べてみましたが、うまくいきませんでした。どんな助けでも大歓迎です。ありがとう。

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

c# - NSubstituteを使用して怠惰なクラスをモックする方法

上記のコードは例外をスローします。

遅延初期化された型には、パラメーターのないパブリックコンストラクターがありません

C#4.0とNSubstitute1.2.1を使用しています

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

c# - モックされたオブジェクトには、Intellisense に表示されるすべてのプロパティが含まれているわけではありません。

私はVSTOオブジェクトをモックしています.1つのプロジェクト(私は書いていません)には次のコードがあります:

mockSheets の Intellisense ToolTip には、6 つのプロパティが表示されます。

NSubstitute すべてのプロパティ

このプロジェクトでは、ブレークポイントのある行が機能します。

ただし、別のプロジェクト (同じ参照、名前空間など) に同じコードがありますが、mockSheets の Intellisense ToolTip には 1 つのプロパティしか表示されません。

NSubstitute 1 つのプロパティのみ

これが解決しようとしている根本的な原因であることはわかっていますが、実際の問題は次のとおりです。

null 参照に対して実行時バインドを実行できません

null 参照に対して実行時バインドを実行できません

編集:

Sheet オブジェクトはモックされています。

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

c# - 2次元オブジェクト配列の戻り型-NSubstitute

キャスト例外が発生します

System.InvalidCastException:タイプ'System.Object[]'のオブジェクトをタイプ'System.Object [、]'にキャストできません。Castle.Proxies.ITestProxy.Get2DArray()でTestTest.csのScratch.TestFixture.Get2DArray()で:行17

下から:

誰かがこれに光を当てることができますか?NSubstituteのバグだと思いますか?

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

asp.net - NSubstitute を使用して MVP でビュー プロパティをモックできないのはなぜですか?

MVP アプリケーションでプレゼンターを単体テストしようとしています。これは、NSubstitude を使用してモックアウトしようとしているビュー インターフェイスです。

ここに私の単体テストクラスがあります。私はNUnitフレームワークを使用しています:

ビュー インターフェイスに set modifer を追加しましたが、機能しませんでした。それで何が悪いの?

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

unit-testing - 組み込み型 (TextBox など) のサブクラスをどのようにモックしますか?

私たちは NSubstitute を使用しているので、モックには単一のインターフェースが必要だと思います。スーパークラスを参照し、ポリモーフィズムを使用するコードもあります。

私が持っていたアイデア..

追加したメソッドと既存のメソッド (Value と Text など) の両方を使用してインターフェイスを作成し、既存のコードの参照をスーパークラスではなくそのインターフェイスを使用するように変更しますか?

TextBox をサブクラス化するのではなくラップします (よくわかりません - これは Adapter / Proxy パターンですか)。

更新(詳細):

TextBox をサブクラス化し、Value プロパティを追加する ValueTextBox クラスを作成しました。

他のコードが予想される時間に get/set Text/Value を呼び出していることを確認したいと思います。

ノート:

  1. ValueTextBox に似た別のクラス IntegerTextBox があります。
  2. 他のコードでは、ポリモーフィズムを利用して、ValueTextBox/IntegerTextBox オブジェクトを TextBox 型の変数に格納することがあります。
0 投票する
1 に答える
461 参照

c# - NSubstitute と Covariance のサポート?

いくつかの TPL データフロー コードをテストしようとしていますが、NSubstitue パラメータ マッチングで共分散の問題のように見える問題に遭遇します。それは主張しています:

次のマッチャーから:

したがって、障害は、ITargetBlock を実装クラス ActionBlock に共変で一致させないことです。

ActionBlock に明示的に一致させずにこれを行う方法はありますか、それとも NSubstitute の現在の制限にすぎませんか?

編集: 便宜上、これは ActionBlock のクラス シグネチャです。大量のインターフェースなどを引き込むことなく、共分散の問題を確認するにはこれで十分だと思います。

問題の核心は、共分散を通じてITargetBlock<T>ActionBlock<T>. NSubstituteの arg マッチャーArg.Any<ITargetBlock<ChainLinkFakeData>>()はそうではないようですか?

簡単な回避策ですArg.Any<ActionBlock<ChainLinkFakeData>>()が、それにはテストの実装に関する知識が必要です。

IEnumerable<T>より単純な例に関しては、これをテストしていませんが、一致しないと同様の確率があると予想していList<T>ます。

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

f# - F# でレコードをスタブする

F# レコードは実際にはシールされたクラスであるため、レコード型をスタブすることはできません。レコードをスタブできるように封印されたものとしてコンパイルされないように、F# のレコードに設定できる属性はありますか?

これはスローします

System.TypeLoadException : 親型がシールされているため、アセンブリ 'DynamicProxyGenAssembly2、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null' から型 'Castle.Proxies.QuoteProxy' を読み込めませんでした。

そして気になる方はどうぞ。これはモックの定義です:

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

c# - NSubstitute を使用してクラスの戻り値で再帰的なモックを取得する方法はありますか

NSubstitute はそのドキュメントでこれを言っています:

インターフェイスを返すメソッド [...] は、自動的に代替物自体を返します。

通常はそれで十分です。ただし、これを行うと:

試験方法:

実際の方法:

Resolve メソッドはクラスを返します。だから嘲笑されない。つまり、 myObject で null を取得し、CallSomeMethod;を呼び出すと null 参照例外が発生します。

モックであるクラスを返すことができればいいのですが(つまり、そのインターフェイスを具体的にオーバーライドしていない限り)。

NSubstituteを使用してこれを取得する方法はありますか?