問題タブ [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.

0 投票する
6 に答える
4842 参照

c# - モッキング方法の結果

別のメソッド内から呼び出されたメソッドの結果を偽造する方法を見つけようとしています。

別のヘルパーを呼び出してデータを取得し、それを変換する「LoadData」メソッドがあります(変換された結果をテストすることに興味があります)。

だから私はこのようなコードを持っています:

Helper.GetSomeData() メソッドからの既知の結果が必要です。モッキング フレームワーク (Rhino Mocks の経験はかなり限られていますが、何に対してもオープンです) を使用して、期待される結果を強制することはできますか? もしそうなら、どのように?

*編集 - ええ、予想通り、私は望んでいたハックを達成できませんでした。データをセットアップするためのより良い方法を考え出さなければなりません.

0 投票する
6 に答える
10153 参照

java - オブジェクト構築をモックする方法は?

JavaでJMockを使用してオブジェクト構築をモックする方法はありますか?

たとえば、そのようなメソッドがある場合:

...テストメソッドでオブジェクト構築の期待をモックアウトする方法はありますか?

型をチェックするための余分なコードを用意するのではなく、特定のコンストラクターが呼び出されていることを期待できるようにしたいと考えています (私の例のように常に複雑で単純であるとは限らないため)。

したがって、代わりに:

特定のコンストラクターが呼び出されることを期待できます。少しきれいにして、実際にテストされているものをより読みやすい方法で表現するためです。

単純な例で申し訳ありませんが、私が取り組んでいる実際の問題はもう少し複雑ですが、期待することで単純化できます。


もう少し背景について:

ラッパー オブジェクトを作成する単純なファクトリ メソッドがあります。ラップされるオブジェクトは、テスト クラス (既存のコード) で取得するのが難しいパラメーターを必要とする場合があるため、それらを構築することは困難です。

おそらく、私が実際に探しているものに近いのは、スタブするすべてのメソッドを指定せずに、(CGLib を使用して) クラス全体を一気にモックする方法はありますか?

したがって、モックはコンストラクターにラップされているため、明らかにメソッドを呼び出すことができます.JMockは各メソッドを動的にモックアウトできますか?

それはかなり複雑になるので、私の推測ではノーです。しかし、私が間違ったツリーを吠えていることを知っていることも価値があります:-)

0 投票する
2 に答える
1489 参照

unit-testing - .NET での単体テスト: Entity Data Provider をモックする方法

エンティティ データ プロバイダーをモックして、単体テストがライブ データにヒットしないようにする方法があるかどうかを知っている人はいますか? このブログを見つけましたが、プロジェクトはまだリリースされていないようです:

http://www.chrisdoesdev.com/index.php/archives/62

ありがとう

0 投票する
7 に答える
20205 参照

python - お気に入りの Python モッキング ライブラリは何ですか?

Python 用のモッキング ライブラリでお気に入りの 1 つを教えてください。

0 投票する
1 に答える
1923 参照

exception - Rhinoモックが応答を注文し、例外の問題をスローします

コードに例外がある場合、再試行ロジックを実装しようとしています。コードを記述し、RhinoMocksにシナリオをシミュレートさせようとしています。コードの要点は次のとおりです。

発生しているように見えるのは、例外が1回だけではなく、毎回スローされることです。設定をどのように変更すればよいですか?

0 投票する
6 に答える
4142 参照

unit-testing - 成熟したプロジェクトにテスト駆動開発 (TDD) を導入することは可能ですか?

  • TDD の価値に気付くのが遅すぎたとしましょう。プロジェクトはすでに成熟しており、多くの顧客が使用を開始しています。
  • 使用される自動テストは、ほとんどが機能/システム テストであり、自動化された GUI テストがかなりあるとします。
  • 新しい機能のリクエストと新しいバグ レポート (!) があるとします。そのため、かなりの開発がまだ続いています。
  • 単体テストがない、またはほとんどないビジネスオブジェクトがすでにたくさんあることに注意してください。
  • それらの間のコラボレーション/関係が多すぎます。これも、より高いレベルの機能/システム テストによってのみテストされます。統合テスト自体はありません。
  • 多数のテーブル、ビューなどを備えた大規模なデータベースが配置されています。単一のビジネス オブジェクトをインスタンス化するだけでも、すでにかなりの量のデータベース ラウンド トリップが行われています。

この段階でTDDをどのように導入できますか?

嘲笑するのが道のようです。しかし、ここで行う必要がある嘲笑の量は多すぎるように思えます。既存のもの (BO、データベースなど) で動作するモッキング システムのために、精巧なインフラストラクチャを開発する必要があるように思えます。

つまり、TDD はゼロから始める場合にのみ適切な方法論であるということですか? すでに成熟した製品に TDD を導入するための実現可能な戦略について知りたいです。

0 投票する
9 に答える
3075 参照

c# - パブリックコンストラクターなしでシールされた OracleException をモック/フェイク/スタブするにはどうすればよいですか?

私のテストでは、(ストアド プロシージャの失敗により) OracleException がスローされたときに何が起こるかをテストする必要があります。Rhino Mocks をセットアップしようとしています

ただし、何らかの理由で、OracleException は public コンストラクターなしで封印されているようです。これをテストするにはどうすればよいですか?

編集:これがまさに私がインスタンス化しようとしているものです:

0 投票する
2 に答える
582 参照

database - 開発データベースではなく、インメモリ データベースに対してテストするのはどのような場合ですか?

インメモリ データベースと開発データベースを比較してテストするのはいつですか?

また、関連する副次的な質問として、開発データベースを使用する場合、個別開発データベース、統合開発データベース、またはその両方を使用しますか?

また、++、単体テストの場合、リポジトリ/DAL などのモックアウトよりもインメモリ データベースを使用するのはいつですか?

0 投票する
2 に答える
546 参照

.net - ビューに winforms を使用するコントローラー クラスの単体テストを作成するにはどうすればよいですか?

必要に応じて System.Windows.Forms.Form クラスに結合されているメソッドの単体テストに成功した人はいますか?

私は最近、C# winforms アプリケーションに取り組んでおり、MVC 構造でビルドしようとしています。フレームワークが実際にこれを念頭に置いて構築されていないことを考えると、これは十分に困難です。

ただし、単体テストをミックスに投入すると、さらに難しくなります。単体テストにスタブ/モックを使用できるように、コントローラーが具体的なビュー クラスに結合されていないことを確認してきました。ただし、どこかでForm クラスを参照することは避けられず、これらのメソッドをテストする必要があります。

私がMoqを使っているのは、Moqには優れた型安全機能があり、具体的な型をモックできるからです。しかし残念ながら、仮想でも抽象でもない具象型のメソッドまたはプロパティへの呼び出しを「期待」することはできません。Form クラスはサブクラス化を考慮して作成されていないため、これは大きな問題です。たとえば、ShowDialog を「期待」して、実際のウィンドウが作成されないように Form クラスをモックできるようにする必要があります。

そのため、フォームのサブクラスと多くのやり取りを行う単体テストを実行できません。これは私のビューです。

このタイプのコードの単体テストに成功した人はいますか? どうやってそれをしましたか?

これは、他のモッキング フレームワークで回避できるものですか? 他のモッキング フレームワークで使用される文字列ベースのメソッドは、同じ制約を受けますか? 独自の明示的なロングハンド モック クラスを記述できますか?それとも、仮想メンバーがないために、ウィンドウの動作をそのように抑制することができなくなりますか?

または、フォームに結合されたコードが単純な複雑さのメソッドとクラスになるように、クラスを構造化するために考えていなかった方法がありますか?それのための?

0 投票する
3 に答える
5484 参照

c# - インターフェイスではないモッククラス

私は、providerbaseクラスから継承するいくつかのプロバイダーをC#で作成してきました。ほとんどのモックフレームワークではインターフェイスのモックしか作成できないため、プロバイダーを使用するテストを作成するのは難しいことがわかりました。

プロバイダーベースから継承するプロバイダーへの呼び出しをモックする方法はありますか?

そうでない場合、プロバイダーのモックを実装するために使用できるパターンはありますか?