Birim Test senaryolarının yazımı için Fabrika/Soyut Fabrika Tasarım Kalıplarının çok etkili olduğu söylenir, ancak bunu açıkça gösteren herhangi bir öğretici bulamamıştır. Biri varolan herhangi öğretici bana gelin ya da bana burada bazı sözde kod ve açıklama :) GoF göreÜnite Testinde Fabrika/Soyut Fabrika Tasarım Kalıplarının Kullanımı
cevap
verebilir Yani çok yararlı olacaktır, Soyut Fabrika desen niyet oluşturmak için bir arayüz sağlamak için Ortak sınıflarını belirtmeden ilgili veya bağımlı nesnelerin aileleri.
Çerçevelerde soyut fabrikalar genellikle bağımlılık enjeksiyonu kullanılarak sağlanır ve bu, sınanması kolay olan kod yazmanın gerçek anahtarıdır. Bağımlılık enjeksiyonu, sadece bağımlılıkların sınıf içinde yenilenmek yerine kurucudan "enjekte edildiği" anlamına gelir.
public class EasyGameFactory implements GameFactory
{
Dice createDice()
{
return new LuckyDice();
}
}
public class NormalGameFactory implements GameFactory
{
Dice createDice()
{
return new RandomDice();
}
}
birim test amaçlı olarak gerçekten Zar uygulamalarının ne kullanmayı tercih ediyorum:
Eğer tavla kolay ve sert oyunlar için (burada sadece bir bağımlılık, Zar) bağımlılıkları üretmek için iki fabrika kullanmak varsayalım Eğer GameFactory özel bir uygulama yazmak, böylece:public class CustomGameFactory implements GameFactory
{
private Dice mDice;
public CustomGameFactory(Dice dice)
{
mDice = dice;
}
Dice createDice()
{
return mDice;
}
}
Bu fabrika üretim kodu ağacının parçası olmak zorunda değildir. Sen Test kodu ile Zar özel uygulaması ile fabrika kaynağı: herhangi bir somut bağımlılık test amaçlı enjekte edilebilir Bu yaklaşımla
public class TestBackgammon
{
@Test public void shouldReturnDiceThrown()
{
SettableDice dice = new SettableDice();
Game game = new GameImpl(new CustomGameFactory(dice));
dice.setDice(new int[] {4, 5});
game.nextTurn();
assertArrayEquals(new int[] {4, 5}, game.diceThrown());
}
}
. Bununla birlikte, çoğu kez bir Soyut Fabrika olmadan, yani bir fabrikanın enjekte edilmesi yerine, aynı şekilde elde edilebilir, bağımlılığın kendisi enjekte edilebilir.
- 1. Tasarım kalıplarının aşırı kullanımı nasıl önlenir?
- 2. Uzun süren ünite testinde orkestrasyon iptali
- 3. Fabrika Tasarım Örneği (gereklilik eleştirisi)
- 4. Fabrika modelinde Yansıma Kullanımı
- 5. Ünite testinde Entity Framework bağlamı nasıl taklit edilir veya değiştirilir?
- 6. Ünite
- 7. Ünite
- 8. Tasarım Desen referans uygulamaları Ada'da?
- 9. Fabrika Metodu VS Fabrika Nesnesi
- 10. Flask'in Uygulamanın fabrika modeli
- 11. Eşleşen fabrika yöntemi bulundu: fabrika yöntemi 'aspectOf()'
- 12. C# Birim Testinde Type yerine RuntimeType
- 13. Fabrika genel yöntem özellikleri iste
- 14. Ünite, dişleri hangi yöntemle test eder?
- 15. IoC üstüne soyut fabrika düzeni?
- 16. TFS 2015 UWP Ünite Testi
- 17. Ünite testim her zaman beklemede
- 18. Birim testinde httpcontext kullanma
- 19. Jasmine testinde sahte pencere.location.reload
- 20. Rspec, Devise, Fabrika kız - Fabrika kullanıcısı Rspec kontrol cihazı testi ile nasıl oturum açılır?
- 21. rspec ve fabrika kızıyla yinelenen fabrika hatası mı?
- 22. MEF ve FABRİKA FABRİKASI
- 23. Fabrika Modeli C#
- 24. Django çoklu form fabrika
- 25. Bir Ninject fabrika yöntemiyle
- 26. C# Fabrika Modeli
- 27. Susturucu Fabrika Kız Giriş
- 28. jenerik fabrika yöntemi kongre
- 29. Fabrika ve jenerik
- 30. Fabrika kalıbı, bellek sızıntısı