問題タブ [isolation-frameworks]
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# - このファクトリ タイプのメソッドとデータベース呼び出しをテスト可能にリファクタリングするにはどうすればよいですか?
単体テストとモッキングの方法を学ぼうとしています。TDD と基本的なテストの原則の一部を理解しています。ただし、テストなしで記述された以下のコードのリファクタリングを検討しており、テスト可能にするためにどのように変更する必要があるかを理解しようとしています。
これら 2 つのメソッドは 1 つのクラスにあります。GetAgentFromDatabase のデータベース関連のコードは、エンタープライズ ライブラリに関連しています。
これをテスト可能にするにはどうすればよいですか?GetAgentFromDatabase メソッドを別のクラスに抽象化する必要がありますか? GetAgentFromDatabase は IDataReader 以外のものを返す必要がありますか? 外部リンクへの提案やポインタは大歓迎です。
.net - .net の優先単体テスト分離フレームワーク
私はかなり長い間 RhinoMocks製品を使用してきましたが、製品に非常に満足しています。他の製品を探す理由はありませんでした。私は最近、TypeMockの善良な人々から、彼らの製品に旋風を巻き起こすように頼まれました. あなたが提案する他の分離/モックフレームワークはありますか?またその理由は?
c# - ファクトリを使用してインスタンスを分離フレームワークからの偽物に置き換える
1 か月前に「Art of Unit Testing」という本を読み終え、今日ようやく Rhino Mocks を使用して、デバイス (UDP) にメッセージを送受信し、データベースからデータを保存/ロードするサービスの単体テストを開始する時間がありました。
もちろん、データベースと UDP 通信を分離したいと考えています。
たとえば、データベースアクセスの場合、静的メソッドを持つクラスがいくつかあります。それらを呼び出しましょう。
- エリアADBアクセス
- エリアBDBアクセス
- エリアCDBアクセス
これらのクラスには、データベース アクセスを実行する静的メソッドがありました。
それらをスタブできるようにするために、メソッドを public virtual にしました。
次に、コード上のこれらのクラスのインスタンスを置き換えることができるように、コードのリファクタリングを開始しました。
さまざまなことを試した後、物事をとても簡単にするように見えるファクトリークラスにたどり着きました。
次に、コードで使用できます
そして、テストメソッドで私は次のようなことをします
これは最初の解決策であり、より良い方法で実行できることを認識しています。
コメントして、ベストプラクティスを教えていただけますか?
また、メソッドを仮想として定義するのではなく、インターフェイスが必要な理由を説明してもらえますか? メソッドヘッダーを 2 か所繰り返すのは無駄に思えます。
ありがとう!
unit-testing - スタブを作成するために本当に分離フレームワークが必要ですか?
私はこれを読みました:http://martinfowler.com/articles/mocksArentStubs.html スタブとモックについての私の概念は明確です。moq、rhinomocksなどの分離フレームワークの必要性を理解しており、モックオブジェクトを作成するのが好きです。モックとして、期待の実際の検証に参加します。しかし、なぜスタブを作成するためにこれらのフレームワークが必要なのですか。手作りのスタブをロールアウトして、さまざまなフィクスチャで使用したいです。
c# - Moles Isolation フレームワークはどのように実装されていますか?
Molesは、Microsoft によって作成された分離フレームワークです。Moles の優れた機能は、静的/非仮想メソッドとシールされたクラスを「モック」できることです (これは Moq のようなフレームワークでは不可能です)。以下は、Moles ができることの簡単なデモです。
DateTime.Now
Moles は実行時に CIL 本体を変更できるようです。Moles はオープンソースではないので、実行時にメソッドの CIL を変更するために Moles がどのメカニズムを使用しているか知りたいです。誰でも光を当てることができますか?
java - Java に最適な分離フレームワークはどれですか? JMock、Easymock、Mockito、またはその他?
これは以前にも質問されたことがあると思いますが、前回は 2008 年半ばでした。
あなたが今新しいプロジェクトを始めるとしたら、どれを使いますか?またその理由は何ですか? 読みやすさ、使いやすさ、保守性、および全体的な堅牢性に関する長所/短所は何ですか?
.net - データベースのサンプル部分を単体テストで使用するxmlファイルとして作成する方法を教えてください。
Db状態が永続的であることを心配せずに単体テストから使用できるように、データベースのサンプル部分をxmlファイルとして作成する方法をお勧めしますか、それとも最も一般的な方法を教えてください。
各テストの後に、Dbから取得したサンプルデータであるXMLファイルの以前の状態に戻ることができる機能を含む、このようなシーンを克服するためのフレームワークはありますか?
ありがとう
c# - モックオブジェクトの標準
RoyOsheroveの本[UnitTesting][1]の本の中で、彼は、単一のユニットテストには0から1のモックを含めるべきだと説明しています。彼は、テストがモックを主張していない場合は、モックをまったく使用しないことを提案しています。彼はさらに、モックと同様に作成されたスタブを生成するために分離フレームワークを使用する方法を示しています。彼は、テストごとに作成されるスタブの数に推奨される制限を設けていません。
私の質問はこれです:それらの推奨事項はすべての分離フレームワーク(またはすべての一般的なC#フレームワーク)に適用できますか?言い換えれば、スタブではなくモックのみを生成できるフレームワークはありますか?モックとスタブを区別しない分離フレームワークはありますか?
Osheroveの推奨事項をコーディング標準に簡単に変換できることに興味があります。
[1]:http://テスト対象のシステムはまったくテストされていません。代わりに、モックから返されたデータがテストされています。
mocking - ほくろを正しく機能させた人はいますか?
ほくろ分離フレームワークの使用方法に関する一貫した説明を見つけようとしていましたが、このトピックについてはあまり見つかりませんでした。これまでのところ、次のことを行いました。
- ここからモルをダウンロードします(x86版)。
- インストールします。
- ここの男は、カスタムライブラリでそれを使用する方法を説明しています. だから私は自分のライブラリにほくろアセンブリを追加しました。再構築後、アセンブリが参照に表示されました。
- 次に、.Moles 名前空間の使用を追加してプロジェクトをビルドしようとしましたが、一連のエラーで失敗しました。MDateTime を使用した例も機能しませんでした。MDateTime にはメソッドがありませんでした。
- それが 5 回目の試みで失敗したことを考慮して、システムからアンインストールしました。
質問: ほくろは誰にでも効果がありますか? はいの場合、どうやってそこに着きましたか?それを機能させるには、pexもインストールする必要がありますか?msbuild スクリプトからビルド サーバーで使用したい場合はどうすればよいですか? 彼らがmsbuildのサポートについて言及しているのを見ましたが、msbuildから実際に使用した経験のある人はいますか?
私にとっては、本格的な開発プロセスで使用するのは非常に生のように見えます。多分誰かが別の意見を持っていますか?
ありがとう。
c# - Monoをテストするための分離フレームワーク
Molesの良いところを読んだら、単体テストを作成するための一連のツールに分離フレームワークを追加したいと思います。
LinuxとWindowsの両方にデプロイされているため、アプリケーションはMonoで実行され、Monoをサポートするフレームワークが見つからないようです。
Cecilを使用したアセンブリの操作に関する記事をいくつか見ましたが、実際に使用できるものを見つけるのに苦労しています。