問題タブ [autofixture]
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# - AutoFixtureはオブジェクトの作成時にデリゲートを実行できますか?
AutoFixtureの作成時の動作をカスタマイズして、フィクスチャのプロパティが生成および割り当てられた後にいくつかの依存オブジェクトを設定できるようにしたいと考えています。
たとえば、特定のテストセットではプロパティが常にfalseである必要があるUser
ため、をカスタマイズするメソッドがあるとします。IsDeleted
(ObjectBuilder
必要に応じてフィクスチャをさらにカスタマイズできるように、テストに戻します。)
私がやりたいのはId
、作成時にそのユーザーを匿名コレクションに自動的に関連付けることですId
が、戻り値を単体テストに返すまでに生成されていないため、これをそのまま行うことはできません。ちゃんとした。これが私がやろうとしていることのようなものです:
このようなことは可能ですか?または、匿名オブジェクトグラフを作成するという私の目標を達成するためのより良い方法がありますか?
c# - AutoFixture: Open Generics Specimen Builder の構成
Open Generics を使用するオブジェクト モデルがあります (はい、はい、2 つの問題があります。それが私がここにいる理由です :) :-
AutoFixture にD
上記の Anonymous インスタンスを生成させようとしています。ただし、AutoFixture 自体には を構築するための戦略が組み込まれていないため、次のことがIOGF<>
わかります。
根底にあるメッセージは次のとおりです。
Ploeh.AutoFixture.ObjectCreationException : AutoFixture は IOGF`1[C] からインスタンスを作成できませんでした。おそらく、パブリック コンストラクターがなく、抽象型または非パブリック型であるためです。
具体的な実装を提供できることをうれしく思います。
関連付けられたバインディング:
次のテストに合格するにはどうすればよいですか (または、そのように問題を見る必要がありますか??)。
(これに関する議論や問題が codeplex サイトにあります - 私はこれを簡単に実装する必要があり、これが単に悪い考えである場合、および/または何かを見逃した場合は、これを削除してもかまいません)
EDIT 2: (マークの回答に関するコメントも参照してください) ここでの (明らかに不自然な) コンテキストは、小さな (制御された/理解しやすい :) ペアまたはトリプレットではなく、大規模な「ほぼ完全なシステム」テスト対象システム オブジェクト グラフの受け入れテストです。ユニットまたは統合テスト シナリオのクラスの。自問自答の括弧内の文で暗示されているように、私はこの種のテストが理にかなっていると完全に確信しているわけではありません.
c# - AutoFixture - 文字列生成の長さを制限するようにフィクスチャを構成します
AutoFixture の Build メソッドをいくつかの型に使用する場合、そのオブジェクトの文字列プロパティ/フィールドを満たすために生成される文字列の長さを制限するにはどうすればよいですか?
c# - AutoFixture は 2 つの異なるリストを生成していますか?
私は AutoFixture を初めて使用し、その機能をすばやくテストしていますが、ちょっとした問題に直面しています。以下は私のテストです:
派手なものはありません。私が直面している問題は、最初に の匿名インスタンスを作成するとき、それを作成してから適切な をバインドしていると主張するまで、同じではないということSyncFolderItemsResult
です。したがって、テストが失敗します。SyncItemsChanges
ItemId
2 つの異なるリストを生成するのはなぜですか?
c# - AutoFixture とインターフェース
私がインターフェースを持っているとしましょう:
IFoo
クラスの場合、次のように書くことができます。
Bar1
結果には、とに設定された数値が含まれBar2
ます。
しかし、インターフェースでこれを行う方法は? 私は使用しようとしましAutoMoqCustomization
たが、これはインターフェース自体ではなく、インターフェース型を持つプロパティのようです。
CreateAnonymous
クラスのような自動化された方法を探しています。現在、インターフェイスのモックを作成し、そのプロパティを明示的に設定していますが、これは保存したい作業です。明らかな何かが欠けているに違いありません。
c# - 内部 ctor を持つクラスで AutoFixture.CreateAnonymous<>() を使用する方法
私は次のようなことをしました
ここで、ユニット テスト アセンブリに を追加しInternalsVisibleTo
て、内部 Bar ctor にアクセスできるようにしてから、次のようにしました。
質問:
それは AutoFixture を利用する「正しい」方法でしたか、それとももっと良い方法がありますか?
c# - 単体テストでの繰り返しコード
多くのテストケースで繰り返しフィクスチャ/モックセットアップをコーディングしていることがわかります-この場合のように:
テストは自己完結型であり、最初から最後まで読み取り可能である必要があるという考えに従って、魔法のセットアップ/分解メソッドを使用しません。
何らかの方法(AutoFixtureのカスタマイズ、ヘルパーメソッド)で、これらのテストの「うんざりする作業」を減らすことができますか?
java - Ploeh の AutoFixture for .Net に代わる Java はありますか?
.Net の AutoFixture と同様に、テストで匿名変数(値を気にしない変数)を作成する Java ツールを探しています。AutoFixture の readmeへのリンクを次に示します。ここには、それが何をするかのかなり良い例があります。
以下は、同じ readme から抜粋した短い例です。
Javaの世界にそのようなツールはありますか?
編集:
私はQuickCheckを試してみましたが、探していたようなことをすることができました:
このツールは、インターフェイスでのみ機能するようです。テストをクラスに変更し、メソッドをフィールドに変更すると、ジェネレーターはインターフェイスのみがサポートされているという例外をスローします。
特にドキュメントが深刻に不足しているため、より良いものがあることを心から願っています。
c# - AutoFixture 'With' と同等の匿名値による一般化された Func ラッピング
AutoFixture ベースのテストでは、次のことをできるだけ明確に表現しようとしています。
<input>
このメソッドのパラメーターに渡すとx
、他のパラメーターを匿名で入力すると、結果は...
ファクトリメソッドの例を挙げる:-
私は簡潔な一連のテストとして表現しようとしています:
- に null を渡すと
x
、スローされるはずです - に null を渡すと
y
、スローされるはずです
表現するために、私は言うことができます:
わずかに異なる 2 番目のインスタンスでは、次のことを行う必要があります。
プロパティについてWith
は、AutoFixture にあります。メソッド (および/または ctor) の引数に相当するものはありますか?
PS 0.この場合、「魔法の」文字列に入る必要があるかどうかは気にしません-つまり、x
ビットを"x"
.
PS 1. 部屋のもう 1 つの象は、AutoFixture の 4 倍の過負荷に頭をぶつけていることGet
です。それとも、この環境に古いバージョンがあるためですか?
PS 2.これをモデル化する方法に関するより良い提案にもオープンです-プロパティやフィールドではなくメソッド呼び出しにしたいという事実に対処している限り(そして、AutoFixtureスタイルで動作させたいのですが) )。
.net - [AutoFixture]SemanticComparisonOfLikenessをシーケンス/コレクション/配列/IEnumerableに適用する
次のようなテストを作成しました。このテストでは、Equal
-classのen-overloadを作成している必要がありCodeTableItem
ます。
テストは正常に機能しますが、残念ながらEquality
-functionに依存しています。つまり、CodeTableItem
-classをもう1つのフィールドで拡張し、-functionを拡張するのを忘れたEquals
場合、すべてのフィールドをテストするわけではありませんが、単体テストは引き続き緑色で実行されます。 。テストに準拠するためだけに作成されたこのEquality
汚染(テスト固有の同等性を参照)を回避したいと考えています。
を使用してみOfLikeness
ましたが、次のようにテストを書き直しました。
しかし、Capacity
が等しくないため、テストは失敗します。リフレクションを何度も実行するコードを作成しましたが、通常、フィールドを無視するためのオーバーロードを実装することになりました。またはで特定のフィールドを無視する方法はありますOfLikeness
かShouldEqual
?または、この問題を解決する他の方法はありますか?