問題タブ [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.
nsubstitute - NSubstitute 受信文字列の不一致
誰が問題が何であるかを見ることができますか? 私には、文字列は同一に見えますが、それらは同じオブジェクト プロパティから来ています。
これが失敗する理由についての情報をいただければ幸いです。
nsubstitute - 複数の呼び出しに応答する NSubstitute Received()
2 回呼び出されるメソッドを持つ NSubstitute で偽造したオブジェクトがあります。メソッドが実際に 2 回 (そして 2 回だけ) 呼び出されていることを確認したいと思います。ドキュメントと Google を調べてみましたが、うまくいきませんでした。どんな助けでも大歓迎です。ありがとう。
c# - NSubstituteを使用して怠惰なクラスをモックする方法
上記のコードは例外をスローします。
遅延初期化された型には、パラメーターのないパブリックコンストラクターがありません
C#4.0とNSubstitute1.2.1を使用しています
c# - モックされたオブジェクトには、Intellisense に表示されるすべてのプロパティが含まれているわけではありません。
私はVSTOオブジェクトをモックしています.1つのプロジェクト(私は書いていません)には次のコードがあります:
mockSheets の Intellisense ToolTip には、6 つのプロパティが表示されます。
このプロジェクトでは、ブレークポイントのある行が機能します。
ただし、別のプロジェクト (同じ参照、名前空間など) に同じコードがありますが、mockSheets の Intellisense ToolTip には 1 つのプロパティしか表示されません。
これが解決しようとしている根本的な原因であることはわかっていますが、実際の問題は次のとおりです。
null 参照に対して実行時バインドを実行できません
編集:
Sheet オブジェクトはモックされています。
c# - 2次元オブジェクト配列の戻り型-NSubstitute
キャスト例外が発生します
System.InvalidCastException:タイプ'System.Object[]'のオブジェクトをタイプ'System.Object [、]'にキャストできません。Castle.Proxies.ITestProxy.Get2DArray()でTestTest.csのScratch.TestFixture.Get2DArray()で:行17
下から:
誰かがこれに光を当てることができますか?NSubstituteのバグだと思いますか?
asp.net - NSubstitute を使用して MVP でビュー プロパティをモックできないのはなぜですか?
MVP アプリケーションでプレゼンターを単体テストしようとしています。これは、NSubstitude を使用してモックアウトしようとしているビュー インターフェイスです。
ここに私の単体テストクラスがあります。私はNUnitフレームワークを使用しています:
ビュー インターフェイスに set modifer を追加しましたが、機能しませんでした。それで何が悪いの?
unit-testing - 組み込み型 (TextBox など) のサブクラスをどのようにモックしますか?
私たちは NSubstitute を使用しているので、モックには単一のインターフェースが必要だと思います。スーパークラスを参照し、ポリモーフィズムを使用するコードもあります。
私が持っていたアイデア..
追加したメソッドと既存のメソッド (Value と Text など) の両方を使用してインターフェイスを作成し、既存のコードの参照をスーパークラスではなくそのインターフェイスを使用するように変更しますか?
TextBox をサブクラス化するのではなくラップします (よくわかりません - これは Adapter / Proxy パターンですか)。
更新(詳細):
TextBox をサブクラス化し、Value プロパティを追加する ValueTextBox クラスを作成しました。
他のコードが予想される時間に get/set Text/Value を呼び出していることを確認したいと思います。
ノート:
- ValueTextBox に似た別のクラス IntegerTextBox があります。
- 他のコードでは、ポリモーフィズムを利用して、ValueTextBox/IntegerTextBox オブジェクトを TextBox 型の変数に格納することがあります。
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>
ます。
f# - F# でレコードをスタブする
F# レコードは実際にはシールされたクラスであるため、レコード型をスタブすることはできません。レコードをスタブできるように封印されたものとしてコンパイルされないように、F# のレコードに設定できる属性はありますか?
これはスローします
System.TypeLoadException : 親型がシールされているため、アセンブリ 'DynamicProxyGenAssembly2、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null' から型 'Castle.Proxies.QuoteProxy' を読み込めませんでした。
そして気になる方はどうぞ。これはモックの定義です:
c# - NSubstitute を使用してクラスの戻り値で再帰的なモックを取得する方法はありますか
NSubstitute はそのドキュメントでこれを言っています:
インターフェイスを返すメソッド [...] は、自動的に代替物自体を返します。
通常はそれで十分です。ただし、これを行うと:
試験方法:
実際の方法:
Resolve メソッドはクラスを返します。だから嘲笑されない。つまり、 myObject で null を取得し、CallSomeMethod
;を呼び出すと null 参照例外が発生します。
モックであるクラスを返すことができればいいのですが(つまり、そのインターフェイスを具体的にオーバーライドしていない限り)。
NSubstituteを使用してこれを取得する方法はありますか?