Bazı sınıflar böyle biraz görünebilir bir iç içe geçmiş çok nesne modelini vardır:AutoFixture'a, her zaman bir TBase'i başlattığında TDerived oluşturması için nasıl söyleyebilirim?
class TBase { ... }
class TDerived : TBase { ... }
class Container
{
ICollection<TBase> instances;
...
}
class TopLevel
{
Container container1;
Container container2;
...
}
Ben bir test fikstür olarak benim üst düzey nesne oluşturmak istiyorum, ama tüm TBase
istiyorum örnekleri (örneğin, instances
koleksiyonunda olduğu gibi) TBase
yerine TDerived
örneğidir.
var fixture = new Fixture();
fixture.Customize<TBase>(c => c.Create<TDerived>());
var model = this.fixture.Create<TopLevel>();
... ama Customize
yılında lambda ifadesi yanlıştır çünkü, çalışmıyor. Sanırım bunu yapmanın bir yolu var, ama AutoFixture, geliştiricinin blogunda bir bilinç akışı dışında, belgelere sahip değil gibi görünüyor.
Beni doğru yöne yönlendiren var mı?
Teşekkürler. Bunu belgeledim diliyorum ... :-) –
Bu: http://www.nudoq.org/#!/Packages/AutoFixture/Ploeh.AutoFixture/TypeRelay :) –
Yani, "belgeler": " Türü için bir istekte bulunan "için bir istekte bulunur", aslında bu işe yaramaz bir ses çıkarmaz :-) Ama benim daha geniş olan nokta, nereye bakacağınızı bilmediğiniz sürece bu yetersiz bilgiyi bile bulmanın bir yolu olmamasıdır. veya tüm API'yi okuyun - nasıl yazılacağını bilmediğiniz bir kelimeye bakmak için bir sözlük kullanmak gibidir. Daha eksiksiz bir eğitici veya hile sayfası olması gerekir, aksi takdirde potansiyel kullanıcı tabanınızın% 99'u ilk engelde ortadan kaldırılır, ki bu da açıkça girilen çaba miktarı göz önüne alındığında gerçek bir utanç olacaktır. –