4

クラスを別のクラスのネストされたコレクションで水和することについて、私は少し混乱しています。エラーが発生します:

AutoFixture は System.Collections.Generic.IList`1[typename...] からインスタンスを作成できませんでした

Fixture.Register()内部クラスを設定するための型を登録するために使用しようとしました。私はちょうど示すサンプルで行うことができます

  1. メインクラス
  2. 別のクラスのネストされたコレクション (IList/IEnumerable)。

古いものとしてマークされていることにも気付きましたが、CodePlexRegister()のメソッドに関するドキュメントがないInject()ため、これがどのように機能するかについて困惑しています。

4

1 に答える 1

4

AutoFixtureは、インターフェースのインスタンスをインスタンス化する方法を推測しませんが、求める動作を非常に簡単に有効にすることができます(整数の場合など)。

fixture.Register(() => fixture.CreateMany<int>());

今後のAutoFixture2.1では、1回のメソッド呼び出しでさまざまなコレクションの規則を有効にすることもできます。

var fixture = new Fixture().Customize(new MultipleCustomization());

Registerメソッドの非推奨に関しては、廃止とマークされているのはRegisterメソッドの1つのオーバーロードのみであることに注意してください。Injectメソッドは直接の置き換えです。署名と使用法は同じですが、名前が異なります。他のすべてのレジスタのオーバーロードは非推奨ではなく、「文書化」として使用する必要があります。

于 2011-03-28T11:30:51.387 に答える