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

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

unit-testing - Autofixture の CreateProxy を使用して Likeness、SemanticComparison 機能を使用する際の問題

Autofixture のCreateProxy メソッド に関する以前の質問で、潜在的なバグが特定されました。

この失敗したテストはその結果ではないと思いますが、むしろ Likeness.Without(...).CreateProxy() 構文がどのように機能するかについての私の継続的な混乱です。オブジェクトの新しいインスタンスを作成し、その作成がSUTであると見なして、元のテスト を少しだけ複雑にする次の失敗したテストを考えてみましょう。

ここにバンドがあります:

の以前の質問Sourceは、 が一般的にどうあるLikenessべきかを理解するのに役立つほど複雑ではありませんでした。

ソースはSUTの出力である必要がありますか? その場合、AutoFixture によって作成されたテンプレートインスタンスと比較されますか?

または、ソースはAutoFixture によって作成されたテンプレートインスタンスである必要があります。その場合、 SUTの出力と比較されますか?

編集:テストのエラーを修正

プロパティをと新しいインスタンスのtemplate.Brassプロパティの両方に誤って割り当てたことに気付きました。更新されたテストは修正を反映しており、6 つのアサーションすべてがパスするようになりました。Brass StringsBandvar createdBand = new Band {Brass = template.Brass, Strings = template.Strings}

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

autofixture - Why doesn't Autofixture Likeness behave like I'd expect for one of these two tests?

Given these classes:

Why does this test pass...

...and this one fail? (the difference is the DrumAndBaseBand instantiation)

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

c# - 仮想プロパティを無視

ストレージ用にEntity Frameworkを使用したMVC4プロジェクトがあります。私たちのテストでは、最近 Autofixture を使い始めましたが、本当に素晴らしいです。

私たちのモデル グラフは非常に深く、通常、AutoFixture で 1 つのオブジェクトを作成すると、グラフ全体が作成されます: Person -> Team -> Departments -> Company -> Contracts -> ....など。

これの問題は時間です。オブジェクトの作成には最大 1 秒かかります。そして、これは遅いテストにつながります。

私がよくやっているのは、次のようなことです。

そして、これは機能し、迅速です。しかし、この過度な仕様はテストを読みにくくし、時には.With(c => c.PersonId, 42)unimportant のリストのような重要な詳細を失うことがあり.Without()ます。

これらの無視されたオブジェクトはすべて、Entity Framework のナビゲーション プロパティであり、すべて仮想です。

仮想メンバーを無視するよう AutoFixture に指示するグローバルな方法はありますか?

を作成しようとしましISpecimentBuilderたが、うまくいきません:

ISpecimenBuilder構築しているオブジェクトが別のクラスの仮想メンバーであることを検出する方法が見つからないようです。おそらくISpecimenBuilder、これはこれを行うのに適切な場所ではありません。他のアイデアはありますか?

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

c# - Autofixture: 次のコードを宣言的に表現するには?

次のコードを宣言的な方法で表現するのに問題があります。

私の生産コードでは、次のようなものがあります。

SomeClass のコンストラクターは次のように定義されています。

ティア、

デビッド

編集:

一部のクラスは次のようになります

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

c# - タイプの AutoFixture 標本ビルダーの作成

この場合は、特定のタイプの AutoFixture 標本ビルダーを作成していSystem.Data.DataSetます。ビルダーは、テスト用FakeDataSetにカスタマイズされたを返しDataSetます。

以下は、 aが要求されているdataSet場合でも、常に null を返すため、機能しません(プロパティにドリルダウンすることでわかります)。DataSetrequest

このバリエーションは機能しますが、複雑すぎるようです。同じことを達成するためのより良い方法があるように感じますが、何かが足りないだけです。

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

unit-testing - F# UnitTest プロジェクトの AutoFixture がテスト エクスプローラーに単体テストを表示しない

Visual Studio 2012 プロジェクトと次の NuGet パッケージがインストールされています。

  • Moqを使用した自動モッキングによるAutoFixture
  • xUnit.net データ理論による Autofixture
  • AutoFixture
  • モク
  • xUnit.net: 拡張機能
  • xUnit.net: ランナー
  • xUnit.net

次の不自然な Logger クラス (Logger.fs) があるとします。

および次の単体テスト:

テスト エクスプローラーは、すべてのテストを表示してプロジェクトをビルドしていることを確認した後、単体テストを認識しません。プロジェクトは正しくビルドされ、ビルド、一般、またはテストの出力ログにエラーや警告はありません。

現在の Theory 属性と AutoData 属性を Fact 属性に置き換えると、テストが表示されます。

AutoFixture は F# テスト プロジェクトでサポートされていますか? 他の誰かがこれを複製して、私が間違っていることを知ることができますか?

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

c# - 同じプロパティ名で Autofixture Fixture.Build().With()

「with」メソッドでプロパティを設定すると、同じ名前のネストされたオブジェクトのすべてのプロパティがnullのままになります。

(autofixture の最新バージョンを 3.0.8 として使用しています)

この状況では、obj.Id == "something" は true に等しくなりますが、obj.Things[0].Id == null も true に等しくなります。

バグがあるか、間違っていると思います。誰でも助けてくれる?

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

c# - AutoFixture: System.Type から CreateAnonymous を作成する方法

System.Type のみを使用して、AutoFixture からオブジェクトを作成する必要があります。CreateAnonymous()ただし、単純に型を取る のオーバーロードはないようです。System.Type を T に変換する方法はありますか?

使用状況の詳細を編集:

複雑なマッピング シナリオをサポートするコンポーネントを挿入するためのフックを持つ AutoMapper を使用しています。

署名からわかるように、クライアントはFunc、挿入されたサービス (ほとんどの場合 ValueResolver 実装) が必要なときにいつでも AutoMapper が呼び出す を登録できます。

プロダクション ビルドでは、このメソッドは StructureMap コンテナを呼び出してコンポーネントを取得します。ただし、マッピング コードを単体テストする場合は、スタブ実装を提供する必要があります。そうしないと、AutoMapper が例外をスローします。AutoFixture + Moq を自動モック コンテナーとして使用しているため、AF が完全にハイドレートされたスタブを作成するのは当然のことのように思われるため、単体テスト コードの記述に集中できます。

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

c# - この場合、AutoFixture を使用するにはどうすればよいですか?

次のコードがあります。

そしてそれはテストに合格します。

次に、次のように AutoFixture を使用してみました。

これは失敗します。特に、patientRecord2 番目のインスタンスの は適切に設定されていません。

ここで何が間違っていますか?