問題タブ [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.
c# - ForPartsOf を使用して置換を返す NSubstitute 仮想ゲッターが例外をスローする
オブジェクトの 1 つのプロパティをモックしようとしています
同様 の質問があります:別の代用を返すメソッドの結果を返すと、NSubstitute で例外がスローされますが 、受け入れられた答えは私にとってはうまくいきません。
これらは例外で失敗します:
c# - NSubstitute を使用して単一のオプション引数をチェックする
他の値を指定することなく、NSubstitute フェイクに渡された単一の値をチェックする方法はありますか?
いくつかのオプションの引数を持つメソッドをイメージします。
他のパラメーターを指定しなくても、特定の値がパラメーターの 1 つに渡されることを確認できるようにしたいと思います。
aまたはbが渡されたかどうかに関係なく、この検証呼び出しを行います。
これは機能します:
しかし、関連性のない引数がテストを乱雑にし、別の引数が に追加されると壊れてしまうため、あまり読みやすくありませんmethod。
ただし、これはオプションのパラメーターにデフォルト値を渡さないメソッド呼び出しを無視します。
また、 using を使用ReceivedWithAnyArgsすると、 Arg.Is() が無視され、bの値に関係なく合格するテストが作成されます。
最後に、値を取得するために偽物を配置してみました。
しかし、署名が正確に一致しない限り、これはヒットしません。オプションのパラメーターがメソッドに追加されたときに、多数のテストを書き直すことなく単一の値をテストする方法を探しています。
注: この例ではint値を使用していますが、参照型でも同じ問題が発生します。
メンテナへのメモ: Arg.Is が ReceivedWithAnyArgs をオーバーライドすることを期待します。それが実行可能な変更である場合。これにより、最小限に指定されたテストを作成できます。
c# - Autofixture を使用してモック クラスを作成し、設定するにはどうすればよいですか?
現在、EF6 を使用して UnitOfWork 内にリポジトリを実装しています。また、インメモリ モック実装 (MockUnitOfWork および MockRepository) を作成して単体テストで使用できるようにしましたが、オブジェクトの面倒なセットアップに対処する必要があります。
これは、Autofixture が行うように設計されていることではありませんか? 作成されたFooおよびBarrリポジトリを含むテストで使用できる MockUnitOfWork を取得するにはどうすればよいですか? 私はモック フレームワークに NSubstitute を使用しています。
IUnitOfWork
Iリポジトリ
c# - 部分的にモック化されたオブジェクトの読み取り専用プロパティを置き換える
基本クラスの読み取り専用プロパティから返される値に依存する MVC コントローラーをテストしています。
このプロパティのゲッターは、HttpContextモックを避けたい (およびその他の厄介なもの) に依存しているため、呼び出されると例外をスローします。
これは私がこれまでに試したことです:
ただし、これは UserInfo にアクセスするとすぐに例外をスローします。
基本クラスのプロパティは次のとおりです。
基本クラス プロパティを仮想に設定しようとしましたが、Castle プロキシ例外が発生します。
unit-testing - xunit/autofixture で PropertyData と AutoNSubstituteData 属性を組み合わせる方法は?
[AutoNSubstituteData]ここに投稿された属性を使用しています:
AutoFixture、xUnit.net、および自動モッキング
[PropertyData("")]これをxunit 拡張機能の属性と組み合わせたいと思います。
これは私のテストです:
invalidConnstringこれらの属性を組み合わせたり、目的の機能を取得したりする方法はありますか (プロパティ データを入力する必要がある を除くすべてをモックします)。
c# - 派生クラスの動作を分離してテストする
いくつかのベースから派生し、モックしたいプライベートクラスメンバーを持つ既存のコードベースで特定のクラスを分離してテストしようとしています:
具体的には、テストを使用して、イベントの発生に応答してDerived何らかのイベントが発生することを確認したいと思います。DoSomething_otherSomethingItHappened
これを達成するために、テストプロジェクトでMockedDerivedクラスを作成しましたDerived:
MSTest テスト メソッドの一部としてNSubstituteを使用してクラスをモックアウトしていますが、次のようなことをしたいと考えています。
私が問題を抱えているのは、Baseクラスがテーブルに持ち込むかなりの量の荷物があることです。つまり、他のクラスのいくつかのオブジェクトを作成し、それらにはいくつかのタイマーがあり、最終的にデータベースが含まれます。
ぐちゃぐちゃになります。
そして、私が本当にやりたいことは、このDerivedクラスが特定の動作を示し、期待どおりに応答することを確認することだけです。
Derivedこの動作のテストを乱雑なBaseおよびそのさまざまなメンバーから分離する方法についての提案はありますか? おそらく、私は明らかな解決策を見ていないだけです。
c# - テスト方法私はキャッチを試す必要があります
私はNUnitを使用しています。テストされる次のコードがあります。
テストする必要があり myview_ButonClick()
ます このメソッドをテストすると、myview.GivenIdnull の場合に例外がスローされるとしましょう。
したがって、以下のように単体テストを記述します。
しかし、テストは失敗しました..なぜですか?(キャッチブロックにスローがないため)。しかし、私は何も投げたくありません。キャッチする能力が必要なだけです。それで、テストは可能ですか?