問題タブ [fakeiteasy]
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.
vb.net - パラメータに関する FakeItEasy VB.NET の問題
モック フレームワークを使用したテストを独学で学ぼうとしています。VB.NET で作業しています。ラムダ式は初めてで、以前のアプリケーションはすべてバージョン 2005 以前で作成されています。今は 2010 です。Rhino.Mocks を試してみましたが、主に構文が古いため、理解するのが難しいことがわかりました。最近、誰も VB.NET でブログを書いているようには見えないので、私は C# の例を見て、何が起こっているのかを理解しようとしています。
そのため、クラスのコンストラクターにインターフェイスを渡し、そのインターフェイスへの参照を保持する状況があります。オブジェクトでメソッドが呼び出され、インターフェイスを実装するクラスによって処理されるイベントが発生した場合。
困っていたので、C# で簡単なバージョンを作成し、vb.net で手順を繰り返してみました。
だから私のインターフェース:
イベントを発生させるクラス:
テスト:
これで合格、今のところ問題ありません。
vb.net で同じことを試してみましょう。C# ではなく vb.net 内の同じインターフェイスとブロードキャスター クラスで、最初は単体テストに続いています。
これは失敗し、次のエラー メッセージが表示されます。" 次の呼び出しでアサーションが失敗しました: TestFakeItEasyVB.IBroadcastClient.MessageReceivedHandler(msg: ) 少なくとも 1 回は見つかると予想されていましたが、呼び出しの中で #0 回見つかりました: 1: TestFakeItEasyVB.IBroadcastClient.MessageReceivedHandler(msg: "Yay!")"
おかしなことに、このように書いています。
も同じエラー メッセージで失敗しますが、このバージョンのテストはパスします。
このバリエーションは C# にも渡されます。偽のイベント ハンドラーに渡された引数をテストで無視するようにするには、何が間違っているのでしょうか?
unit-testing - FakeItEasyとFluentValidationを使用したcommonlibnetからの偽のキャプチャ
commonlibrary(http://commonlibrarynet.codeplex.com/)のCaptchaクラスを使用しています。私のコードはすべて機能しますが、今は単体テストを作成しようとしています。
私の検証ルールは次のとおりです。
私のセットアップコードでは、次のことを試みました。
しかし、次のエラーメッセージが表示されます。
したがって、問題は、FakeItEasyを使用して静的メソッドを偽造する方法です。
TIA、
デビッド
vb.net - VB.Net で FakeItEasy を使用してイベントを発生させ、イベント ハンドラーが適切に配線されていることを確認する
インターフェイスとコントローラー間のイベント ハンドラーが適切に配線されていることをテストしようとしています。システムは以下の例のようにセットアップされます。
イベント ハンドラー内に含まれる各コード パスをテストできるように、ブール値パラメーターを使用してイベントを発生させるにはどうすればよいですか。Google Code ホームページに示されている構文がうまくいきません。
これは私がこれまでに持っているものです:
c# - C#でクラスメンバーをモックする方法は?
FakeItEasy を使用して、作成中の C# クラスのメンバーであるオブジェクトをモックしようとしています。
FakeItEasy のドキュメントには、次のような方法でオブジェクトを偽造することが示されています。
つまり、「var」キーワードを使用します。
ただし、この場合、C# コンパイラは、 varが非ローカル コンテキストで使用されていることを好みません。次のエラーが表示されます。
コンテキスト キーワード 'var' は、ローカル変数宣言内でのみ使用できます
ローカルでないオブジェクトをモックできませんか?
unit-testing - FakeItEasy を使用した nHibernate セッションの偽装
FakeItEasy を使用してリポジトリに偽の nHibernate セッションを挿入し、テスト内で定義済みのオブジェクトのリストを返したいと考えています。誰もこれを行った経験がありますか?
テストの例を次に示します。
実際の ProductionRepository クラス内の呼び出しは次のとおりです。
アドバイスをよろしくお願いします!
autofac - FakeItEasy で System.Type オブジェクトから偽物を作成する方法はありますか?
FakeItEasy で System.Type オブジェクトから偽物を作成する方法はありますか? に似ている:
解決されたすべての型の偽物を自動的に返す AutoFac の偽のコンテナーを作成しようとしました。私は FakeItEasy のコードを調べましたが、これをサポートするすべてのメソッドは内部クラスの背後にありますが、非常に興味深いインターフェイス IFakeObjectContainer を見つけましたが、実装にはまだオブジェクトの登録が必要です。
unit-testing - ネストされた Entity Framework メンバーに対する FakeItEasy を使用した単体テスト
Entity Framework 4.1 に依存するコードの単体テストを試みています。POCO に対する単体テストを実装する投稿をいくつか見てきましたが、EF Caching Wrapperを簡単に使用できるように、デフォルトの EF 配管を保持したいと考えています。
FakeItEasy は EF の抽象化をうまく処理しているようですが、何が起こったのかを主張するのに問題があります。たとえば、モデルに次のコードがあります (ここにはEmail
、EF データベース ファースト ウィザードから自動生成されたコードである別の部分クラスがあります)。
次に、FakeItEasy を使用した単体テストで:
context.Emails.AddObject
実際に呼び出された単体テストからどのように知ることができますか?
ありがとうございました!
c# - 同じモック インスタンスでパブリック メソッドの呼び出しをアサートする
次のテストがあります
問題は、メソッド内で攻撃者ではないため、メソッドDealDamage
からの呼び出しAttack
が登録されていないため、メソッド呼び出しが傍受されていないことです。this
realAttacker
wrappedAttacker
このアサーションをテストするにはどうすればよいですか? これは FakeItEasy で実行できますか? 別のモック フレームワークでこれをテストできますか?
c# - マジック ストリングを使用せずに FakeItEasy-mock に渡される引数を取得しますか?
私は過去数年間、モッキングのニーズにMoqを使用してきましたが、 FakeItEasyを見て、試してみたいと思いました。
メソッドが正しいパラメーターで呼び出されていることをテストしたいことがよくありますが、FakeItEasy でこれを行うための満足のいく方法が見つかりませんでした。
テストする次のコードがあります。
_workflowInvoker.Invoke() への入力を検証するテストを書きたいと思います。私の TestInitialize メソッドは、必要なリソースを設定し、入力辞書をローカル フィールド _wfInput として _workflowInvoker.Invoke() に保存します。
セットアップ後、次のような複数のテストがあります。
渡された引数 (またはマジック ナンバー) を取得するための TestInitialize のマジック文字列 "input" は好きではありません。次のように、ローカル フィールドなしでテストを記述できます。
しかし、ローカルフィールドを使用したテストの方が読みやすいと思います。
マジック ナンバーや文字列を使用せずに、テスト クラスのフィールドとして入力を保存するように設定する方法はありますか?
質問の更新された例が、ローカル フィールドを使用したい理由を示していることを願っています。読みやすい方法が見つかれば、 local フィールドを使わずにテストを書きたいと思っています。
rhino-mocks - Rhino と FakeItEasy の動作の違い
モッキング フレームワークを Rhino から FakeItEasy に切り替えることを検討しています。主な理由はシンプルさです。FakeItEasy では、物事を行う方法は 1 つしかありません。Rhino には、記録/再生、AAA、スタブ、部分モック、厳密モック、動的モックなどがあります。
FakeItEasy を使用していくつかのテストを書き直して、Rhino が現在行っているすべてのことを確実に実行できるようにしています。
Rhinoでは、次のテストがあります。コードは省略されています。
このコードが添付されている単体テストは問題なく実行され、テストに合格します。FakeItEasy を使って次のように書き直しました。
テストを実行すると失敗しますが、FakeItEasy が例外をスローしているためです。
Rhino にも同じ制限があるため、これは奇妙に思えました。AppSettings は ConfigurationManagerBase では仮想ですが、インデクサー プロパティはそうではありません。FakeItEasy テストを read に変更することで問題を修正しました。
私は基本的に、私が FakeItEasy で何か間違ったことをしているのか、それとも Rhino がそのインデクサーを使用して舞台裏で何らかの「魔法」を実行しているのかを理解しようとしています。