問題タブ [automoq]

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 投票する
2 に答える
474 参照

c# - AutoMoq でジェネリック クラスのプロパティをパラメーターとして渡す

私がやろうとしているのは、AutoFixture と Moq を使用してリポジトリを作成することを一般化することです。リストに偽のレコードを追加する「add」というメソッドがあります。リストはレコードと呼ばれ、クラスに対してグローバルです。一般的な M は、嘲笑されるモデルです。メソッドは「this」を返すため、メソッドをチェーンできます。

拡張クラスを使用します(これはSOの検索で見つかりました):

私が得ているエラーは、「Ploeh.AutoFixture.dll で ArgumentException が発生しました」です。

私の質問は次のとおりです。コンパイル時にモデルが不明な場合、メソッドのパラメーターとして汎用オブジェクトのプロパティを渡すにはどうすればよいですか?

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

c# - AutoFixture Data Theories を使用した AutoMock のセットアップ

の他の質問で答えたように、AutoMoqデフォルトでは AutoFixture を使用しません。それは問題なく、セットアップと設定を行うことで簡単に解決できますReturnsUsingFixture

しかし、それは Auto Fixture Data Theories でセットアップできますか?

そこで、私が呼び出すカスタム AutoDataAttribute があります[MyAutoData]。そこで、 のような一連のカスタマイズを呼び出してセットアップし、AutoConfiguredMoqCustomizationwebapi コントローラーを生成するように構成し、多くのカスタム ジェネレーターを登録します。そのため、ボイラープレート構成のほぼすべてをいくつかの基本的な構成ファイルに引き出すことができました。MyAutoDataシステム テスト用の属性も設定されているので、たとえば を要求するId<Account>と、実際の webapi 呼び出しを使用して新しいアカウントが作成され、有効なアカウント ID が返されます。

AutoMoqしかし、メソッドの戻り値を設定するためにそれをどのように処理できますか? 次に例を示します。

他のすべてのケースでは、この種の構成をMyAutoData(またはそれが呼び出すクラスに) 移動することができました。しかし、AutoMoqの場合、それがどのように機能するかわかりません。フィクスチャを行うことはできません。

AutoFixture がアイテムを生成した後、テスト メソッドに配信される前にセットアップ メソッドをトリガーする方法はありますか? または、常に使用するように AutoMoq の動作をカスタマイズする方法はあります.ReturnsUsingFixture(fixture)か? それとも、この問題についてすべて間違って考えているだけですか?

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

moq - AutoMoqCustomization で Strict MockBehavior を使用するにはどうすればよいですか?

AutoFixture.AutoMoq パッケージで AutoFixture を使用すると、テスト対象を正しくテストするように構成されていないテストが見つかることがありますが、デフォルトの (Loose) Mock 動作のために問題が発見されることはありませんでした。

モックを Strict 動作で作成したいので、Setup()呼び出されると予想されるメソッドを呼び出さなければなりません。次のように、個々のモックごとにこれを行うことができます。

しかし、AutoMoqCustomization() およびさまざまなISpecimenBuilder実装のソース コードをくまなく調べた後、すべてのモックを厳密な動作で初期化するための最善の方法についてかなり迷っています。このフレームワークは非常に柔軟で拡張可能であるように見えるので、これを行う簡単な方法があると確信していますが、方法がわかりません。

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

moq - AutoMoq が Fixture によって作成されたメソッドの値を返すようにする

AutoMoq によって作成されたすべての Moq-mocks がデフォルトで Fixture によって作成された値をメソッドの戻り値として返すように設定することで、時間を節約できるかどうかを調べたいと思います。

これは、次のようなテストを行う場合に役立ちます。

生成された値はプロキシ内 (?) にキャッシュする必要があることに注意してください。チェックするために、同じ値を「凍結」する必要があります。また、モックを設定するとSetup、作成された値が上書きされます。

では、これを行うために AutoMoq モックを変更するにはどうすればよいでしょうか?

それが機能することを確認する簡単なテストは次のようになります。

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

c# - xUnit/Shouldly/AutoMoq/Autofixture で、InlineAutoMoqData を使用して Type を渡すことができますか?テスト自体で?

単体テストで解決できなかった問題があります。最も簡潔に言うと、次のようになると思います。

Theory InlineAutoMoqData のパラメーターで提供される Type を、Shouldly の Should.Throw メソッドの T として使用できるようにしたいと考えています。これにより、メソッドに複数の例外が関連付けられている場合に、さまざまな例外タイプを期待して、さまざまな行テスト (このフレームワークではインライン理論だと思います) を作成できます。

可能かどうかはわかりませんが、単体テスト自体の例を次に示します。

困惑してこれを投稿する前に、私が見た質問は次のとおりです

このようなことは可能ですか?

編集:

xUnit では、Assert.Throws(Type, Delegate) メソッドを使用してこれを実現できることがわかりました。

タイプをジェネリックメソッドにしたいときはいつでもそれを達成する方法があるかどうかを知りたいです。

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

c# - モックされたインターフェイスは、各プロパティで 2 つのファントム呼び出しを取得します

現在の時刻をプレフィックスとしてコンソールにメッセージを書き込む単純なクラスがあります。IDateTimeProvider抽象化としてインターフェースに依存していますDateTime.Now

Writeメソッドの呼び出しをテストするために、IDateTimeProvider.NowxUnit、AutoFixture、および Moq を使用して次のテストを作成しました。

http://blog.ploeh.dk/2010/10/08/AutoDataTheorieswithAutoFixture/AutoMoqDataAttributeで見られるように使用しています

上記のテストは、次のメッセージで失敗します。

モックで 1 回の呼び出しが期待されていましたが、3 回でした: m => m.Now

セットアップが構成されていません。

だから私の質問は: 余分な呼び出し (インターフェイスのプロパティごとに 2 つ) はどこから来るのですか?

問題の使用を控えると、次AutoMoqDataAttributeのようになります。

このバージョンのテストはパスしますが、私はむしろパラメーターを使用してテストを行います。