問題タブ [mocking]
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.
unit-testing - テストされているメソッド以外のテストされているオブジェクトのメソッドをモックできますか (またはすべきですか)?
私は次のようなクラスを持っています:
MethodA のテストがあり、MethodB をテストしたいのですが、やりたいことは、MethodA が true を返す場合は何かが起こることを確認し、MethodA が false を返す場合は何かが起こることを確認することだけです。Rhino Mocks でこれを行うことはできますか? それとも、MethodA のテストで既に使用しているのと同じモックをすべてセットアップする必要がありますか?
unit-testing - 単体テスト SiteMapNode
SiteMapNode を単体テストする方法を知っている人はいますか? カスタム属性を持つサイト マップから順不同の html リストをレンダリングする、いくつかのカスタム ナビゲーション コントロールを構築しています。
テストファーストのアプローチに従おうとしていますが、SiteMapNode には HttpContext への内部依存関係があることがわかりました。サイト マップ ファイルをトラバースするには、仮想パスを使用してサイト マップ ファイルを見つけることを主張します。
テストしたいサイト マップを作成しましたが、Web プロジェクト (!) で単体テスト環境を作成したくありません。
助言がありますか?あざける?関連するメンバーをオーバーライドしますか?
c# - UI コントロールを使用した単体テスト方法
私は現在、Textbox、Groupbox などのフォーム コントロールでいくつかの基本的な操作を行ういくつかのメソッドを作成しています。これらの操作は一般的であり、あらゆるアプリケーションで使用できます。
私はいくつかの単体テストを書き始めましたが、System.Windows.Forms にある実際のフォーム コントロールを使用するべきか、それともテストしようとしているセクションを単にモックアップするべきか疑問に思っていました。たとえば、次のようになります。
コントロールを取るこのメソッドがあり、それがテキストボックスの場合、次のようにテキストプロパティをクリアするとします:
次に、このメソッドをテストしたいので、次のようにします。
System.Window.Forms への参照を単体テストに追加し、実際の Textbox オブジェクトを使用する必要がありますか? または私はそれを間違っていますか?
注: 上記のコードは単なる例であり、コンパイルも実行もしていません。
c# - COMオブジェクトをモックする
私は、文字列のみを取得して返すことができるCOMオブジェクトのラッパーに取り組んできました。COMオブジェクトのインターフェイスは次のようになります。
これで、次のような基本的な機能をまとめたクラスを作成しました。
ここで、毎回実際のCOMオブジェクトを作成せずに、これらのクラスの単体テストを実行し、ワールドを設定してからテストを実行したいと思います。そのため、モックオブジェクトの使用を検討してきましたが、この状況でモックをどのように使用するかについて少し混乱しています。
私はMoqの使用を計画しているので、このテストを次のように作成しました。
これは私のCOMオブジェクトをモックする正しい方法ですか?eval関数に送信される文字列のこの真実性はどのように正しいのでしょうか?または私はそれをすべて間違っていますか?
silverlight - Silverlight から ADO.Net Dataservice 呼び出しをモックする方法
Silverlight アプリケーションから ADO.Net Data Service 呼び出しを模倣する良い方法を見つけた人はいますか?
Data Services の力は、エンティティに対するクライアント側の linq の使用にあるようです。しかし、データ アクセスを行うオブジェクトをテストする場合、どのようにサービスをモック化できるのでしょうか?
1 つの方法は、モック データ サービス全体を作成することですが、その場合、すべてのオブジェクトを再作成する必要があります。
役立つモック フレームワークはありますか?
unit-testing - DAL を正しく単体テストするにはどうすればよいですか?
私は単体テストが初めてです。しかし、Entity Framework で記述された DAL を単体テストするにはどうすればよいでしょうか。DAL コードが正しく動作していることを確認できますが、実際にはデータベースに触れていません。誰かができるだけ詳しく教えてください。
unit-testing - モッキング対テストDB?
以前にこの質問をしました DALの単体テストを正しく行うには? 、私にとって未回答のことの1つは、DALを実際にテストすることがテストDBを持つことである場合、モックとテストDBの役割は何ですか?
これを追加するために、別の人が「単体テストの最後にトランザクションとロールバックを使用して、db をクリーンにする」ことを提案しました。つまり、db をテストします。DAL をテストするためのこのテスト + テスト DB + トランザクション ロールバック (つまり、db は実際には書かれていない) アプローチについてどう思いますか?
完全にするために、私の DAL は Entity Framework で構築されており、DB にはストアド プロシージャはありません。EF は非常に新しいため、DAL をテストして正しく動作することを確認する必要があります。
unit-testing - 偽のクラスを作成して単体テストする必要があるのはなぜですか?
実際のクラスをテストできるロジックを持つクラス (たとえば、割引を計算できるクラス) をテストする必要があることは理解しています。
しかし、リポジトリとして機能する (データベースからオブジェクトを取得する) プロジェクトの単体テストを書き始めたところです。ISomethingRepository
インターフェイスを実装する「偽の」リポジトリを作成していることに気づきました。Dictionary<Guid, Something>
内部ストレージに を使用します。Add(Something)
インターフェイスのおよびGetById(Guid)
メソッドを実装します。
なぜ私はこれを書いているのですか?私が書いているものは、ソフトウェアが展開されたときに実際にソフトウェアによって使用されることはありませんよね? この演習の価値がよくわかりません。
また、特定の期待に応えるために事前にセットアップできるモック オブジェクトを使用するようアドバイスも得ました。それは私にはさらに無意味に思えます: もちろん、テストは成功します。私はそれを嘲笑/偽造して成功させました! そして、データベースに接続するときに実際のソフトウェアが正常に動作するかどうかはまだわかりません...
混乱している...
これを理解するのを助けるために誰かが私を正しい方向に向けることができますか?
ありがとうございました!
c# - ダミーの嘲笑?
私はモックを初めて使用します。UI-> BLL-> DAL-> DB 構造の新しい .net Web プロジェクトを持っています。現在、NUnit を使用していくつかのテストを行っています。これを使用して中間層をテストするつもりなので、実際に DB に書き込む必要はありません。
今、私はモッキングを行ったことがなく、どこから始めればよいのかわからないので、エンドツーエンドのサンプルを持つモッキングフレームワークを探しています! 誰かが最初から完全なサンプルを含むいくつかのモック素材を教えてもらえますか?
ありがとうございました、
レイ。
c# - 属性のモック - C#
プロジェクトでカスタム属性を使用しており、それらを単体テストに統合したいと考えています。
現在、Rhino モックを使用してモックを作成していますが、それらに属性 (およびパラメーター) を追加する方法がわかりません。
私は何かを逃しましたか、それとも不可能ですか?他のモックフレームワーク? または、属性を使用してダミーの実装を作成する必要がありますか?
例: プラグイン アーキテクチャ (IPlugin) にインターフェイスがあり、プロパティにメタ情報を追加する属性があります。次に、追加の処理のためにプラグイン実装でこの属性を持つプロパティを探します (その値を保存し、GUI 読み取り専用としてマークします...)
モックを作成するときに、属性をプロパティまたはオブジェクト インスタンス自体に簡単に追加できますか?
編集:同じ質問の投稿を見つけました -> link。答えは 100% ではなく、Java です...
編集2:それは可能です...さらに(SOで)検索し、2つの関連する質問(+回答)を見つけました
さて、これはすでに何らかのモッキング フレームワークで実装されていますか?